Re: [PATCH v2] dlm: validate lock modes in recovery messages

Alexander Aring <[email protected]> Thu, 16 Jul 2026 14:37:53 -0400
Newsgroups dev.linux.lists.gfs2,org.kernel.vger.linux-kernel
Message-ID <CAK-6q+icgD9fK5bqjQtVn89DhsyYOxhO4KsNDzBhw9Sv_8sHXw@mail.gmail.com>
Hi,

On Sat, Jun 27, 2026 at 1:04=E2=80=AFPM Danila Chernetsov <[email protected]=
u> wrote:
>
> The DLM recovery path restores lock state from rcom_lock messages
> received from remote nodes. The lock modes in these messages are
> copied directly into the local lkb state without validating that they
> are within the valid DLM lock mode range.
>
> The rest of the DLM code assumes that lkb_rqmode and lkb_grmode
> contain valid lock modes. In particular, LVB callback handling in
> dlm_may_skip_callback() uses lock modes as indexes into the
> dlm_lvb_operations array:
>
>     dlm_lvb_operations[prev_mode + 1][mode + 1]
>
> An invalid lock mode received during recovery could therefore result in
> an out-of-bounds read during subsequent LVB callback processing.
>
> Validate rl_rqmode and rl_grmode before storing them into the local LKB
> state. This preserves the lock mode invariant required by the rest of
> the DLM code.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: e7fd41792fc0 ("[DLM] The core of the DLM for GFS2/CLVM")
> Signed-off-by: Danila Chernetsov <[email protected]>

Acked-by: Alexander Aring <[email protected]>

> ---
> Changes in v2:
> - Fixed an incorrect patch subject from the previous submission.

ehm yes, for some reason this was under spam. This is a better version.

Thanks.

- Alex