Re: [PATCH v2] dlm: validate lock modes in recovery messages
From: Alexander Aring
Date: Thu Jul 16 2026 - 14:38:14 EST
Hi,
On Sat, Jun 27, 2026 at 1:04 PM Danila Chernetsov <listdansp@xxxxxxx> 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 <listdansp@xxxxxxx>
Acked-by: Alexander Aring <aahringo@xxxxxxxxxx>
> ---
> 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