From 4c284d3aa8e28a8177d7cca90afa0c1dc95914f7 Mon Sep 17 00:00:00 2001 From: Z1pburg3r <> Date: Sat, 1 Apr 2023 15:07:44 -0400 Subject: [PATCH] Fix struct packing logic associated with calls to getdents64. --- qiling/os/posix/syscall/unistd.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qiling/os/posix/syscall/unistd.py b/qiling/os/posix/syscall/unistd.py index b52f5e4b7..5be76f494 100644 --- a/qiling/os/posix/syscall/unistd.py +++ b/qiling/os/posix/syscall/unistd.py @@ -766,7 +766,7 @@ def _type_mapping(ent): return bytes([t]) if ql.os.fd[fd].tell() == 0: - n = ql.arch.pointersize + n = 8 if is_64 else ql.arch.pointersize total_size = 0 results = os.scandir(ql.os.fd[fd].name) _ent_count = 0 @@ -787,8 +787,8 @@ def _type_mapping(ent): if is_64: fields = ( - (ql.pack(d_ino), n), - (ql.pack(d_off), n), + (ql.pack64(d_ino), n), + (ql.pack64(d_off), n), (ql.pack16(d_reclen), 2), (d_type, 1), (d_name, len(d_name))