diff options
author | Theodore Ts'o <tytso@mit.edu> | 2024-04-18 14:16:55 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2024-04-18 14:16:55 -0400 |
commit | 8b37e89f850610d51b7550ac34b8912b3000ced5 (patch) | |
tree | e7d507183df87408dcae19abb3dccb6b8e543038 | |
parent | 08079876e77b5f3fac81c093b33a297afb4dcb31 (diff) | |
download | e2fsprogs-8b37e89f850610d51b7550ac34b8912b3000ced5.tar.gz |
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 <tytso@mit.edu>
-rw-r--r-- | debugfs/debugfs.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c index 965511739..b17576e8f 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)); |