From: Pádraig Brady Date: Sat, 23 Aug 2014 00:18:58 +0000 (+0100) Subject: maint: ensure fiemap extents flags are compared correctly X-Git-Tag: v8.24~238 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8338c4dc4ac088025cf0403e46d311390aad042d;p=thirdparty%2Fcoreutils.git maint: ensure fiemap extents flags are compared correctly * src/extent-scan.c (extent_scan_read): Following on from the flags size adjustment in commit v8.23-13-g1505b37, verify that the internal representation of the flags is never truncated which could happen in the unlikely case on 32 bit if the kernel flags ever expanded to 64 bits which is theoretically possible given the reserved space. --- diff --git a/src/extent-scan.c b/src/extent-scan.c index 805997a7b1..3af8f991de 100644 --- a/src/extent-scan.c +++ b/src/extent-scan.c @@ -140,6 +140,8 @@ extent_scan_read (struct extent_scan *scan) assert (fm_extents[i].fe_logical <= OFF_T_MAX - fm_extents[i].fe_length); + verify (sizeof last_ei->ext_flags >= sizeof fm_extents->fe_flags); + if (si && last_ei->ext_flags == (fm_extents[i].fe_flags & ~FIEMAP_EXTENT_LAST) && (last_ei->ext_logical + last_ei->ext_length