diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2012-08-21 02:13:12 +0400 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2012-08-27 10:17:30 +0300 |
commit | 333858b77c2b4f7636257808a77822c58bdd80fe (patch) | |
tree | 09c5fd3e0c80db779e995ee736355b55908c7552 /linux-user/syscall_defs.h | |
parent | 42644cee08f85202f5d3e8babf6503487849353a (diff) |
linux-user: fix emulation of getdents
In case when TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64, the last
byte of the target dirent structure (aka d_type byte) was never copied
from the host dirent structure, thus breaking everything that relies
on valid d_type value, e.g. glob(3).
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/syscall_defs.h')
-rw-r--r-- | linux-user/syscall_defs.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 2cfda5afd5..a98cbf7b80 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -255,10 +255,10 @@ struct kernel_statfs { }; struct target_dirent { - abi_long d_ino; - abi_long d_off; - unsigned short d_reclen; - char d_name[256]; /* We must not include limits.h! */ + abi_long d_ino; + abi_long d_off; + unsigned short d_reclen; + char d_name[]; }; struct target_dirent64 { |