]> 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 11:57:58 +0000 (12:57 +0100)
commita52d2019ec7cc200fcd7eba6f4815525deceff3d
tree287cd9d8b9bbf922eb007c5278fe9f5fbc2053e5
parent52967bbb93eb817db90f8aadc1c083f7f3e194d4
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