From e7baffaba0642736ed221d4e50f66f6cfbd5e291 Mon Sep 17 00:00:00 2001 From: implicitfield <114500360+implicitfield@users.noreply.github.com> Date: Sat, 23 Nov 2024 17:03:55 +0200 Subject: [PATCH] Ext2FS: Serialize timestamps as signed offsets The header would have you believe these are unsigned, but they should really be treated as signed. --- Kernel/FileSystem/Ext2FS/Inode.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/FileSystem/Ext2FS/Inode.cpp b/Kernel/FileSystem/Ext2FS/Inode.cpp index 3353f362c16..190eba7a86c 100644 --- a/Kernel/FileSystem/Ext2FS/Inode.cpp +++ b/Kernel/FileSystem/Ext2FS/Inode.cpp @@ -417,10 +417,10 @@ InodeMetadata Ext2FSInode::metadata() const metadata.uid = inode_uid(m_raw_inode); metadata.gid = inode_gid(m_raw_inode); metadata.link_count = m_raw_inode.i_links_count; - metadata.atime = UnixDateTime::from_seconds_since_epoch(m_raw_inode.i_atime); - metadata.ctime = UnixDateTime::from_seconds_since_epoch(m_raw_inode.i_ctime); - metadata.mtime = UnixDateTime::from_seconds_since_epoch(m_raw_inode.i_mtime); - metadata.dtime = UnixDateTime::from_seconds_since_epoch(m_raw_inode.i_dtime); + metadata.atime = UnixDateTime::from_seconds_since_epoch(static_cast(m_raw_inode.i_atime)); + metadata.ctime = UnixDateTime::from_seconds_since_epoch(static_cast(m_raw_inode.i_ctime)); + metadata.mtime = UnixDateTime::from_seconds_since_epoch(static_cast(m_raw_inode.i_mtime)); + metadata.dtime = UnixDateTime::from_seconds_since_epoch(static_cast(m_raw_inode.i_dtime)); metadata.block_size = fs().logical_block_size(); metadata.block_count = m_raw_inode.i_blocks;