]> 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)
committerChristian Brauner <brauner@kernel.org>
Wed, 17 May 2023 13:25:18 +0000 (15:25 +0200)
commitf15afbd34d8fadbd375f1212e97837e32bc170cc
tree49005bffe38ef81d5b4b297240e0e3de1d76bed1
parentf1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
fs: fix undefined behavior in bit shift for SB_NOUSER

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>
include/linux/fs.h