From 8338c4dc4ac088025cf0403e46d311390aad042d Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= Date: Sat, 23 Aug 2014 01:18:58 +0100 Subject: [PATCH] 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. --- src/extent-scan.c | 2 ++ 1 file changed, 2 insertions(+) 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 -- 2.47.2