summaryrefslogtreecommitdiff
path: root/linux-user/syscall_defs.h
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2012-08-21 02:13:12 +0400
committerRiku Voipio <riku.voipio@linaro.org>2012-08-27 10:17:30 +0300
commit333858b77c2b4f7636257808a77822c58bdd80fe (patch)
tree09c5fd3e0c80db779e995ee736355b55908c7552 /linux-user/syscall_defs.h
parent42644cee08f85202f5d3e8babf6503487849353a (diff)
downloadqemu-333858b77c2b4f7636257808a77822c58bdd80fe.tar.gz
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.h8
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 {