From: Theodore Ts'o Date: Sun, 29 May 2016 05:05:06 +0000 (-0400) Subject: e2fsck: always fix invalid extra field in timestamps if time_t is 32-bits X-Git-Tag: v1.43.1~35 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=c40c832b4cda298e30ce3c9a0ee2734cc13b9efa;p=tools%2Fe2fsprogs.git e2fsck: always fix invalid extra field in timestamps if time_t is 32-bits Systems with 32-bit time_t's can be used past 2038, so we should always modify dates with extra_time=3. (On systems with 64-bit time_t's we will fix these dates before the year 2242.) Signed-off-by: Theodore Ts'o --- diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index 799158e..c924d31 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -512,7 +512,9 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx) * If the inode's extended atime (ctime, crtime, mtime) is stored in * the old, invalid format, repair it. */ - if (sizeof(time_t) > 4 && ctx->now < EXT4_EXTRA_NEGATIVE_DATE_CUTOFF && + if (((sizeof(time_t) <= 4) || + ((sizeof(time_t) > 4) && + ctx->now < EXT4_EXTRA_NEGATIVE_DATE_CUTOFF)) && (CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, atime) || CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, ctime) || CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, crtime) ||