From 8b37e89f850610d51b7550ac34b8912b3000ced5 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 18 Apr 2024 14:16:55 -0400 Subject: [PATCH] debugfs: fix printing post-2038 inode timestamps Debugfs's stat command called ext2fs_inode_xtime_get() with a struct inode * instead of a struct large_inode *. As a result, printing inode timestamps will be incorrect if the time value is larger than 2**32. Fixes: ca8bc9240a00 ("Add post-2038 timestamp support to e2fsprogs") Signed-off-by: Theodore Ts'o --- debugfs/debugfs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c index 9655117..b17576e 100644 --- a/debugfs/debugfs.c +++ b/debugfs/debugfs.c @@ -900,21 +900,24 @@ void internal_dump_inode(FILE *out, const char *prefix, if (ext2fs_inode_includes(inode_size, i_ctime_extra)) fprintf(out, "%s ctime: 0x%08x:%08x -- %s", prefix, inode->i_ctime, large_inode->i_ctime_extra, - time_to_string(ext2fs_inode_xtime_get(inode, i_ctime))); + time_to_string(ext2fs_inode_xtime_get(large_inode, + i_ctime))); else fprintf(out, "%sctime: 0x%08x -- %s", prefix, inode->i_ctime, time_to_string((__s32) inode->i_ctime)); if (ext2fs_inode_includes(inode_size, i_atime_extra)) fprintf(out, "%s atime: 0x%08x:%08x -- %s", prefix, inode->i_atime, large_inode->i_atime_extra, - time_to_string(ext2fs_inode_xtime_get(inode, i_atime))); + time_to_string(ext2fs_inode_xtime_get(large_inode, + i_atime))); else fprintf(out, "%satime: 0x%08x -- %s", prefix, inode->i_atime, time_to_string((__s32) inode->i_atime)); if (ext2fs_inode_includes(inode_size, i_mtime_extra)) fprintf(out, "%s mtime: 0x%08x:%08x -- %s", prefix, inode->i_mtime, large_inode->i_mtime_extra, - time_to_string(ext2fs_inode_xtime_get(inode, i_mtime))); + time_to_string(ext2fs_inode_xtime_get(large_inode, + i_mtime))); else fprintf(out, "%smtime: 0x%08x -- %s", prefix, inode->i_mtime, time_to_string((__s32) inode->i_mtime)); -- 1.8.3.1