From: Alejandro Vallejo Date: Thu, 14 Sep 2023 12:22:51 +0000 (+0100) Subject: libfsimage/xfs: Amend mask32lo() to allow the value 32 X-Git-Tag: RELEASE-4.16.6~58 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7d520b8d4ec7495f1ef1e4343a4f705a363e0c9c;p=xen.git libfsimage/xfs: Amend mask32lo() to allow the value 32 agblklog could plausibly be 32, but that would overflow this shift. Perform the shift as ULL and cast to u32 at the end instead. This is part of XSA-443 / CVE-2023-34325 Signed-off-by: Alejandro Vallejo Acked-by: Jan Beulich (cherry picked from commit ddc45e4eea946bb373a4b4a60c84bf9339cf413b) --- diff --git a/tools/libfsimage/xfs/fsys_xfs.c b/tools/libfsimage/xfs/fsys_xfs.c index 2800699f59..4720bb4505 100644 --- a/tools/libfsimage/xfs/fsys_xfs.c +++ b/tools/libfsimage/xfs/fsys_xfs.c @@ -60,7 +60,7 @@ static struct xfs_info xfs; #define inode ((xfs_dinode_t *)((char *)FSYS_BUF + 8192)) #define icore (inode->di_core) -#define mask32lo(n) (((xfs_uint32_t)1 << (n)) - 1) +#define mask32lo(n) ((xfs_uint32_t)((1ull << (n)) - 1)) #define XFS_INO_MASK(k) ((xfs_uint32_t)((1ULL << (k)) - 1)) #define XFS_INO_OFFSET_BITS xfs.inopblog