]> git.itanic.dy.fi Git - linux-stable/commit
fs: fix undefined behavior in bit shift for SB_NOUSER
authorHao Ge <gehao@kylinos.cn>
Mon, 24 Apr 2023 05:18:35 +0000 (13:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 May 2023 12:55:32 +0000 (13:55 +0100)
commitcd41ec23503f83a761f961a32c7df2749771bae7
tree23d248313a6a656c20a8fb2e7dc51256a3afc2e1
parentc2f65991097a62efbdb2bed3c06fc86b08c9593b
fs: fix undefined behavior in bit shift for SB_NOUSER

commit f15afbd34d8fadbd375f1212e97837e32bc170cc upstream.

Shifting signed 32-bit value by 31 bits is undefined, so changing
significant bit to unsigned. It was spotted by UBSAN.

So let's just fix this by using the BIT() helper for all SB_* flags.

Fixes: e462ec50cb5f ("VFS: Differentiate mount flags (MS_*) from internal superblock flags")
Signed-off-by: Hao Ge <gehao@kylinos.cn>
Message-Id: <20230424051835.374204-1-gehao@kylinos.cn>
[brauner@kernel.org: use BIT() for all SB_* flags]
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/fs.h