Mercurial > gub
changeset 6301:6695d3a8e046
Fix librestrict compile error
On Ubuntu 14.04 i386 (32-bit), librestrict compilation was failed.
In that environment, some members of 'struct stat' don't exist,
though related _HAVE_STAT___ macros is defined.
In this commit, the structure is zero cleared
without referring to the macros.
author | Masamichi Hosoda <trueroad@users.noreply.github.com> |
---|---|
date | Sat, 01 Nov 2014 20:26:35 +0900 |
parents | c98d8d7eb559 |
children | 9e36a36de8a9 |
files | librestrict/xstatconv.c |
diffstat | 1 files changed, 6 insertions(+), 63 deletions(-) [+] |
line wrap: on
line diff
--- a/librestrict/xstatconv.c Tue Oct 21 12:37:18 2014 +0100 +++ b/librestrict/xstatconv.c Sat Nov 01 20:26:35 2014 +0900 @@ -48,20 +48,16 @@ { struct stat *buf = ubuf; + /* zero clear */ + memset(buf, 0, sizeof(*buf)); /* Convert to current kernel version of `struct stat'. */ buf->st_dev = kbuf->st_dev; -#ifdef _HAVE_STAT___PAD1 - buf->__pad1 = 0; -#endif buf->st_ino = kbuf->st_ino; buf->st_mode = kbuf->st_mode; buf->st_nlink = kbuf->st_nlink; buf->st_uid = kbuf->st_uid; buf->st_gid = kbuf->st_gid; buf->st_rdev = kbuf->st_rdev; -#ifdef _HAVE_STAT___PAD2 - buf->__pad2 = 0; -#endif buf->st_size = kbuf->st_size; buf->st_blksize = kbuf->st_blksize; buf->st_blocks = kbuf->st_blocks; @@ -77,21 +73,6 @@ buf->st_mtime = kbuf->st_mtime; buf->st_ctime = kbuf->st_ctime; #endif -#ifdef _HAVE_STAT___UNUSED1 - buf->__unused1 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED2 - buf->__unused2 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED3 - buf->__unused3 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED4 - buf->__unused4 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED5 - buf->__unused5 = 0; -#endif } break; @@ -116,11 +97,10 @@ { struct stat64 *buf = ubuf; + /* zero clear */ + memset(buf, 0, sizeof(*buf)); /* Convert to current kernel version of `struct stat64'. */ buf->st_dev = kbuf->st_dev; -#ifdef _HAVE_STAT64___PAD1 - buf->__pad1 = 0; -#endif buf->st_ino = kbuf->st_ino; #ifdef _HAVE_STAT64___ST_INO buf->__st_ino = kbuf->st_ino; @@ -130,9 +110,6 @@ buf->st_uid = kbuf->st_uid; buf->st_gid = kbuf->st_gid; buf->st_rdev = kbuf->st_rdev; -#ifdef _HAVE_STAT64___PAD2 - buf->__pad2 = 0; -#endif buf->st_size = kbuf->st_size; buf->st_blksize = kbuf->st_blksize; buf->st_blocks = kbuf->st_blocks; @@ -148,21 +125,6 @@ buf->st_mtime = kbuf->st_mtime; buf->st_ctime = kbuf->st_ctime; #endif -#ifdef _HAVE_STAT64___UNUSED1 - buf->__unused1 = 0; -#endif -#ifdef _HAVE_STAT64___UNUSED2 - buf->__unused2 = 0; -#endif -#ifdef _HAVE_STAT64___UNUSED3 - buf->__unused3 = 0; -#endif -#ifdef _HAVE_STAT64___UNUSED4 - buf->__unused4 = 0; -#endif -#ifdef _HAVE_STAT64___UNUSED5 - buf->__unused5 = 0; -#endif } break; @@ -185,12 +147,11 @@ { case _STAT_VER_LINUX: { + /* zero clear */ + memset(buf, 0, sizeof(*buf)); /* Convert current kernel version of `struct stat64' to `struct stat'. */ buf->st_dev = kbuf->st_dev; -#ifdef _HAVE_STAT___PAD1 - buf->__pad1 = 0; -#endif #ifdef _HAVE_STAT64___ST_INO # if __ASSUME_ST_INO_64_BIT == 0 if (kbuf->st_ino == 0) @@ -220,9 +181,6 @@ buf->st_uid = kbuf->st_uid; buf->st_gid = kbuf->st_gid; buf->st_rdev = kbuf->st_rdev; -#ifdef _HAVE_STAT___PAD2 - buf->__pad2 = 0; -#endif buf->st_size = kbuf->st_size; /* Check for overflow. */ if (sizeof (buf->st_size) != sizeof (kbuf->st_size) @@ -253,21 +211,6 @@ buf->st_ctime = kbuf->st_ctime; #endif -#ifdef _HAVE_STAT___UNUSED1 - buf->__unused1 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED2 - buf->__unused2 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED3 - buf->__unused3 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED4 - buf->__unused4 = 0; -#endif -#ifdef _HAVE_STAT___UNUSED5 - buf->__unused5 = 0; -#endif } break;