1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Remove CHECK_1 and CHECK_1_NULL_OK.

This commit is contained in:
Joseph Myers
2013-02-08 01:12:11 +00:00
parent b2c9eff43c
commit f3aae3f3eb
44 changed files with 179 additions and 176 deletions

View File

@ -1,5 +1,98 @@
2013-02-08 Joseph Myers <joseph@codesourcery.com> 2013-02-08 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/generic/bp-checks.h (CHECK_1): Remove all definitions.
(CHECK_1_NULL_OK): Likewise.
* sysdeps/unix/sysv/linux/fxstat.c: Do not include <bp-checks.h>.
(__fxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/fxstat64.c: Do not include
<bp-checks.h>.
(___fxstat64): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/fxstatat.c: Do not include
<bp-checks.h>.
(__fxstatat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/fxstatat64.c: Do not include
<bp-checks.h>.
(__fxstatat64): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/fxstat.c: Do not include
<bp-checks.h>.
(__fxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/fxstatat.c: Do not include
<bp-checks.h>.
(__fxstatat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/getresgid.c: Do not include
<bp-checks.h>.
(__getresgid): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/getresuid.c: Do not include
<bp-checks.h>.
(__getresuid): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/lxstat.c: Do not include
<bp-checks.h>.
(__lxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/msgctl.c: Do not include
<bp-checks.h>.
(__old_msgctl): Do not use CHECK_1.
(__new_msgctl): Likewise.
* sysdeps/unix/sysv/linux/i386/setrlimit.c: Do not include
<bp-checks.h>.
(__new_setrlimit): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/i386/shmctl.c: Do not include
<bp-checks.h>.
(__old_shmctl): Do not use CHECK_1.
(__new_shmctl): Likewise.
* sysdeps/unix/sysv/linux/i386/xstat.c: Do not include
<bp-checks.h>.
(__xstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/lxstat.c: Do not include <bp-checks.h>.
(__lxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/lxstat64.c: Do not include
<bp-checks.h>.
(___lxstat64): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/msgctl.c: Do not include <bp-checks.h>.
(__old_msgctl): Do not use CHECK_1.
(__new_msgctl): Likewise.
* sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Do not include
<bp-checks.h>.
(__gettimeofday): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/ptrace.c: Do not include <bp-checks.h>.
(ptrace) [__BOUNDED_POINTERS__]: Remove conditional code.
* sysdeps/unix/sysv/linux/s390/gettimeofday.c: Do not include
<bp-checks.h>.
(__gettimeofday): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/shmctl.c: Do not include <bp-checks.h>.
(__old_shmctl): Do not use CHECK_1_NULL_OK.
(__new_shmctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/sigtimedwait.c: Do not include
<bp-checks.h>.
(do_sigtimedwait): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: Do not include
<bp-checks.h>.
(do_sigwaitinfo): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c: Do not include
<bp-checks.h>.
(msgctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c: Do not include
<bp-checks.h>.
(shmctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/ustat.c: Do not include <bp-checks.h>.
(ustat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/wordsize-64/fxstat.c: Do not include
<bp-checks.h>.
(__fxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: Do not include
<bp-checks.h>.
(__fxstatat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/wordsize-64/lxstat.c: Do not include
<bp-checks.h>.
(__lxstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/wordsize-64/xstat.c: Do not include
<bp-checks.h>.
(__xstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/xstat.c: Do not include <bp-checks.h>.
(__xstat): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/xstat64.c: Do not include <bp-checks.h>.
(___xstat64): Do not use CHECK_1.
[BZ #13550] [BZ #13550]
* sysdeps/generic/bp-checks.h (CHECK_BOUNDS_LOW): Remove all * sysdeps/generic/bp-checks.h (CHECK_BOUNDS_LOW): Remove all
definitions. definitions.

View File

@ -1,3 +1,10 @@
2013-02-08 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: Do not include
<bp-checks.h>.
(__gettimeofday): Do not use CHECK_1.
2013-01-23 Marcus Shawcroft <marcus.shawcroft@linaro.org> 2013-01-23 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* sysdeps/aarch64/strncmp.S: New file. * sysdeps/aarch64/strncmp.S: New file.

View File

@ -1,3 +1,13 @@
2013-02-08 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/alpha/msgctl.c: Do not include
<bp-checks.h>.
(__new_msgctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/alpha/shmctl.c: Do not include
<bp-checks.h>.
(__new_shmctl): Do not use CHECK_1.
2013-01-31 Joseph Myers <joseph@codesourcery.com> 2013-01-31 Joseph Myers <joseph@codesourcery.com>
[BZ #13550] [BZ #13550]

View File

@ -1,3 +1,10 @@
2013-02-08 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/ia64/sigaction.c: Do not include
<bp-checks.h>.
(__libc_sigaction): Do not use CHECK_1_NULL_OK.
2013-02-04 Joseph Myers <joseph@codesourcery.com> 2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550] [BZ #13550]

View File

@ -1,3 +1,16 @@
2013-02-08 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/mips/mips64/msgctl.c: Do not include
<bp-checks.h>.
(__msgctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/mips/mips64/shmctl.c: Do not include
<bp-checks.h>.
(__shmctl): Do not use CHECK_1.
* sysdeps/unix/sysv/linux/mips/ustat.c: Do not include
<bp-checks.h>.
(ustat): Do not use CHECK_1.
2013-02-05 Maciej W. Rozycki <macro@codesourcery.com> 2013-02-05 Maciej W. Rozycki <macro@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Add a missing * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Add a missing

View File

@ -22,7 +22,6 @@
#undef __gettimeofday #undef __gettimeofday
#include <bits/libc-vdso.h> #include <bits/libc-vdso.h>
#include <bp-checks.h>
/* Get the current time of day and timezone information, /* Get the current time of day and timezone information,
putting it into *tv and *tz. If tz is null, *tz is not filled. putting it into *tv and *tz. If tz is null, *tz is not filled.
@ -32,7 +31,7 @@ __gettimeofday (tv, tz)
struct timeval *tv; struct timeval *tv;
struct timezone *tz; struct timezone *tz;
{ {
return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
} }
libc_hidden_def (__gettimeofday) libc_hidden_def (__gettimeofday)
weak_alias (__gettimeofday, gettimeofday) weak_alias (__gettimeofday, gettimeofday)

View File

@ -21,13 +21,12 @@
#include <ipc_priv.h> #include <ipc_priv.h>
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
int int
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf) __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
{ {
return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, CHECK_1 (buf)); return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf);
} }
#include <shlib-compat.h> #include <shlib-compat.h>

View File

@ -22,13 +22,12 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bits/wordsize.h> #include <bits/wordsize.h>
#include <bp-checks.h>
int int
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf) __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{ {
return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, CHECK_1 (buf)); return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, buf);
} }
#include <shlib-compat.h> #include <shlib-compat.h>

View File

@ -26,7 +26,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* The variable is shared between all wrappers around signal handling /* The variable is shared between all wrappers around signal handling
functions which have RT equivalents. This is the definition. */ functions which have RT equivalents. This is the definition. */
@ -42,8 +41,7 @@ __libc_sigaction (sig, act, oact)
{ {
/* XXX The size argument hopefully will have to be changed to the /* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */ real size of the user-level sigset_t. */
return INLINE_SYSCALL (rt_sigaction, 4, sig, return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
CHECK_1_NULL_OK (act), CHECK_1_NULL_OK (oact), _NSIG / 8);
} }
libc_hidden_def (__libc_sigaction) libc_hidden_def (__libc_sigaction)

View File

@ -20,14 +20,12 @@
#include <ipc_priv.h> #include <ipc_priv.h>
#include <sysdep.h> #include <sysdep.h>
#include <bp-checks.h>
int __msgctl (int msqid, int cmd, struct msqid_ds *buf); int __msgctl (int msqid, int cmd, struct msqid_ds *buf);
int int
__msgctl (int msqid, int cmd, struct msqid_ds *buf) __msgctl (int msqid, int cmd, struct msqid_ds *buf)
{ {
return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, CHECK_1 (buf)); return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf);
} }
#include <shlib-compat.h> #include <shlib-compat.h>

View File

@ -20,14 +20,12 @@
#include <ipc_priv.h> #include <ipc_priv.h>
#include <sysdep.h> #include <sysdep.h>
#include <bp-checks.h>
int __shmctl (int shmid, int cmd, struct shmid_ds *buf); int __shmctl (int shmid, int cmd, struct shmid_ds *buf);
int int
__shmctl (int shmid, int cmd, struct shmid_ds *buf) __shmctl (int shmid, int cmd, struct shmid_ds *buf)
{ {
return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, CHECK_1 (buf)); return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, buf);
} }
#include <shlib-compat.h> #include <shlib-compat.h>

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
int int
ustat (dev_t dev, struct ustat *ubuf) ustat (dev_t dev, struct ustat *ubuf)
@ -32,5 +31,5 @@ ustat (dev_t dev, struct ustat *ubuf)
/* We must convert the value to dev_t type used by the kernel. */ /* We must convert the value to dev_t type used by the kernel. */
k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff); k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff);
return INLINE_SYSCALL (ustat, 2, k_dev, CHECK_1 (ubuf)); return INLINE_SYSCALL (ustat, 2, k_dev, ubuf);
} }

View File

@ -36,18 +36,11 @@
/* Same as CHECK_N, but tolerate ARG == NULL. */ /* Same as CHECK_N, but tolerate ARG == NULL. */
# define CHECK_N_NULL_OK(ARG, N) _CHECK_N ((ARG), (N), __ptrvalue (ARG)) # define CHECK_N_NULL_OK(ARG, N) _CHECK_N ((ARG), (N), __ptrvalue (ARG))
/* Check bounds of a pointer seated to a single object. */
# define CHECK_1(ARG) CHECK_N ((ARG), 1)
/* Same as CHECK_1, but tolerate ARG == NULL. */
# define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1)
#else /* !__BOUNDED_POINTERS__ */ #else /* !__BOUNDED_POINTERS__ */
/* Do nothing if not compiling with -fbounded-pointers. */ /* Do nothing if not compiling with -fbounded-pointers. */
# define BOUNDS_VIOLATED # define BOUNDS_VIOLATED
# define CHECK_1(ARG) (ARG)
# define CHECK_1_NULL_OK(ARG) (ARG)
# define CHECK_N(ARG, N) (ARG) # define CHECK_N(ARG, N) (ARG)
# define CHECK_N_NULL_OK(ARG, N) (ARG) # define CHECK_N_NULL_OK(ARG, N) (ARG)

View File

@ -28,7 +28,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <xstatconv.h> #include <xstatconv.h>
@ -37,7 +36,7 @@ int
__fxstat (int vers, int fd, struct stat *buf) __fxstat (int vers, int fd, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; errno = EINVAL;

View File

@ -23,7 +23,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -33,7 +32,7 @@ int
___fxstat64 (int vers, int fd, struct stat64 *buf) ___fxstat64 (int vers, int fd, struct stat64 *buf)
{ {
int result; int result;
result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf)); result = INLINE_SYSCALL (fstat64, 2, fd, buf);
#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino) if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
buf->st_ino = buf->__st_ino; buf->st_ino = buf->__st_ino;

View File

@ -29,7 +29,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
#include <xstatconv.h> #include <xstatconv.h>
@ -110,10 +109,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
{ {
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat, err, 2, file, result = INTERNAL_SYSCALL (lstat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); (struct kernel_stat *) st);
else else
result = INTERNAL_SYSCALL (stat, err, 2, file, result = INTERNAL_SYSCALL (stat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); (struct kernel_stat *) st);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return result; return result;

View File

@ -25,7 +25,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -99,9 +98,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
} }
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st)); result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
else else
result = INTERNAL_SYSCALL (stat64, err, 2, file, CHECK_1 (st)); result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
{ {
# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 # if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0

View File

@ -27,7 +27,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -40,7 +39,7 @@ __fxstat (int vers, int fd, struct stat *buf)
int result; int result;
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
{ {
struct stat64 buf64; struct stat64 buf64;

View File

@ -29,7 +29,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -103,10 +102,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
{ {
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat, err, 2, file, result = INTERNAL_SYSCALL (lstat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); (struct kernel_stat *) st);
else else
result = INTERNAL_SYSCALL (stat, err, 2, file, result = INTERNAL_SYSCALL (stat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); (struct kernel_stat *) st);
goto out; goto out;
} }

View File

@ -23,15 +23,13 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Consider moving to syscalls.list. */ /* Consider moving to syscalls.list. */
int int
__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid) __getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
{ {
return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid), return INLINE_SYSCALL (getresgid32, 3, rgid, egid, sgid);
CHECK_1 (egid), CHECK_1 (sgid));
} }
libc_hidden_def (__getresgid) libc_hidden_def (__getresgid)
weak_alias (__getresgid, getresgid) weak_alias (__getresgid, getresgid)

View File

@ -23,15 +23,13 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Consider moving to syscalls.list. */ /* Consider moving to syscalls.list. */
int int
__getresuid (uid_t *ruid, uid_t *euid, uid_t *suid) __getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
{ {
return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid), return INLINE_SYSCALL (getresuid32, 3, ruid, euid, suid);
CHECK_1 (euid), CHECK_1 (suid));
} }
libc_hidden_def (__getresuid) libc_hidden_def (__getresuid)
weak_alias (__getresuid, getresuid) weak_alias (__getresuid, getresuid)

View File

@ -27,7 +27,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -41,7 +40,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
int result; int result;
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (lstat, 2, name, CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf);
{ {
struct stat64 buf64; struct stat64 buf64;

View File

@ -23,7 +23,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <string.h> #include <string.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <shlib-compat.h> #include <shlib-compat.h>
@ -56,8 +55,7 @@ int
attribute_compat_text_section attribute_compat_text_section
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf) __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
msqid, cmd, 0, CHECK_1 (buf));
} }
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0); compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
#endif #endif
@ -66,7 +64,7 @@ int
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf) __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
msqid, cmd | __IPC_64, 0, CHECK_1 (buf)); msqid, cmd | __IPC_64, 0, buf);
} }
versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2); versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <shlib-compat.h> #include <shlib-compat.h>
#include <bp-checks.h>
extern int __new_setrlimit (enum __rlimit_resource resource, extern int __new_setrlimit (enum __rlimit_resource resource,
const struct rlimit *__unboundedrlimits); const struct rlimit *__unboundedrlimits);
@ -32,7 +31,7 @@ extern int __new_setrlimit (enum __rlimit_resource resource,
int int
__new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits) __new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
{ {
return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits)); return INLINE_SYSCALL (setrlimit, 2, resource, rlimits);
} }
weak_alias (__new_setrlimit, __setrlimit); weak_alias (__new_setrlimit, __setrlimit);

View File

@ -24,7 +24,6 @@
#include <string.h> #include <string.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bits/wordsize.h> #include <bits/wordsize.h>
#include <bp-checks.h>
#include <shlib-compat.h> #include <shlib-compat.h>
@ -63,8 +62,7 @@ int
attribute_compat_text_section attribute_compat_text_section
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf) __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
shmid, cmd, 0, CHECK_1 (buf));
} }
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0); compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
#endif #endif
@ -73,7 +71,7 @@ int
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf) __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,
shmid, cmd | __IPC_64, 0, CHECK_1 (buf)); shmid, cmd | __IPC_64, 0, buf);
} }
versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2); versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);

View File

@ -27,7 +27,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -41,7 +40,7 @@ __xstat (int vers, const char *name, struct stat *buf)
int result; int result;
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (stat, 2, name, CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf);
{ {
struct stat64 buf64; struct stat64 buf64;

View File

@ -27,7 +27,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <xstatconv.h> #include <xstatconv.h>
@ -36,8 +35,7 @@ int
__lxstat (int vers, const char *name, struct stat *buf) __lxstat (int vers, const char *name, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (lstat, 2, name, return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf);
CHECK_1 ((struct kernel_stat *) buf));
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; errno = EINVAL;

View File

@ -23,7 +23,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -32,7 +31,7 @@ int
___lxstat64 (int vers, const char *name, struct stat64 *buf) ___lxstat64 (int vers, const char *name, struct stat64 *buf)
{ {
int result; int result;
result = INLINE_SYSCALL (lstat64, 2, name, CHECK_1 (buf)); result = INLINE_SYSCALL (lstat64, 2, name, buf);
#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino) if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
buf->st_ino = buf->__st_ino; buf->st_ino = buf->__st_ino;

View File

@ -24,7 +24,6 @@
#include <string.h> #include <string.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <shlib-compat.h> #include <shlib-compat.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -57,7 +56,7 @@ int
attribute_compat_text_section attribute_compat_text_section
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf) __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf)); return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
} }
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0); compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
#endif #endif
@ -67,7 +66,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
{ {
#if __ASSUME_IPC64 > 0 #if __ASSUME_IPC64 > 0
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
msqid, cmd | __IPC_64, 0, CHECK_1 (buf)); msqid, cmd | __IPC_64, 0, buf);
#else #else
switch (cmd) { switch (cmd) {
case MSG_STAT: case MSG_STAT:
@ -76,7 +75,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
break; break;
default: default:
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
msqid, cmd, 0, CHECK_1 (buf)); msqid, cmd, 0, buf);
} }
{ {
@ -86,7 +85,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
/* Unfortunately there is no way how to find out for sure whether /* Unfortunately there is no way how to find out for sure whether
we should use old or new msgctl. */ we should use old or new msgctl. */
result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
msqid, cmd | __IPC_64, 0, CHECK_1 (buf)); msqid, cmd | __IPC_64, 0, buf);
if (result != -1 || errno != EINVAL) if (result != -1 || errno != EINVAL)
return result; return result;

View File

@ -16,7 +16,6 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <bp-checks.h>
#include <stddef.h> #include <stddef.h>
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
struct timeval *tv; struct timeval *tv;
struct timezone *tz; struct timezone *tz;
{ {
return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
} }
libc_hidden_def (__gettimeofday) libc_hidden_def (__gettimeofday)
weak_alias (__gettimeofday, gettimeofday) weak_alias (__gettimeofday, gettimeofday)

View File

@ -24,7 +24,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
long int long int
ptrace (enum __ptrace_request request, ...) ptrace (enum __ptrace_request request, ...)
@ -43,77 +42,6 @@ ptrace (enum __ptrace_request request, ...)
if (request > 0 && request < 4) if (request > 0 && request < 4)
data = &ret; data = &ret;
#if __BOUNDED_POINTERS__
switch (request)
{
case PTRACE_PEEKTEXT:
case PTRACE_PEEKDATA:
case PTRACE_PEEKUSER:
case PTRACE_POKETEXT:
case PTRACE_POKEDATA:
case PTRACE_POKEUSER:
(void) CHECK_1 ((int *) addr);
(void) CHECK_1 ((int *) data);
break;
case PTRACE_GETREGS:
case PTRACE_SETREGS:
#ifdef __i386__
(void) CHECK_1 ((struct user_regs_struct *) data);
#else
/* We don't know the size of data, so the best we can do is ensure
that `data' is valid for at least one word. */
(void) CHECK_1 ((int *) data);
#endif
break;
case PTRACE_GETFPREGS:
case PTRACE_SETFPREGS:
#ifdef __i386__
(void) CHECK_1 ((struct user_fpregs_struct *) data);
#else
/* We don't know the size of data, so the best we can do is ensure
that `data' is valid for at least one word. */
(void) CHECK_1 ((int *) data);
#endif
break;
case PTRACE_GETFPXREGS:
case PTRACE_SETFPXREGS:
#ifdef __i386__
(void) CHECK_1 ((struct user_fpxregs_struct *) data);
#else
/* We don't know the size of data, so the best we can do is ensure
that `data' is valid for at least one word. */
(void) CHECK_1 ((int *) data);
#endif
break;
case PTRACE_GETSIGINFO:
case PTRACE_SETSIGINFO:
(void) CHECK_1 ((siginfo_t *) data);
break;
case PTRACE_GETEVENTMSG:
(void) CHECK_1 ((unsigned long *) data);
break;
case PTRACE_SETOPTIONS:
(void) CHECK_1 ((long *) data);
break;
case PTRACE_TRACEME:
case PTRACE_CONT:
case PTRACE_KILL:
case PTRACE_SINGLESTEP:
case PTRACE_ATTACH:
case PTRACE_DETACH:
case PTRACE_SYSCALL:
/* Neither `data' nor `addr' needs any checks. */
break;
};
#endif
res = INLINE_SYSCALL (ptrace, 4, request, pid, res = INLINE_SYSCALL (ptrace, 4, request, pid,
__ptrvalue (addr), __ptrvalue (data)); __ptrvalue (addr), __ptrvalue (data));
if (res >= 0 && request > 0 && request < 4) if (res >= 0 && request > 0 && request < 4)

View File

@ -16,7 +16,6 @@
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
#include <sysdep.h> #include <sysdep.h>
#include <bp-checks.h>
#include <stddef.h> #include <stddef.h>
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
struct timeval *tv; struct timeval *tv;
struct timezone *tz; struct timezone *tz;
{ {
return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
} }
libc_hidden_def (__gettimeofday) libc_hidden_def (__gettimeofday)
weak_alias (__gettimeofday, gettimeofday) weak_alias (__gettimeofday, gettimeofday)

View File

@ -25,7 +25,6 @@
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bits/wordsize.h> #include <bits/wordsize.h>
#include <shlib-compat.h> #include <shlib-compat.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -64,8 +63,7 @@ int
attribute_compat_text_section attribute_compat_text_section
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf) __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
cmd, 0, CHECK_1_NULL_OK (buf));
} }
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0); compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
#endif #endif
@ -75,7 +73,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{ {
#if __ASSUME_IPC64 > 0 #if __ASSUME_IPC64 > 0
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
CHECK_1 (buf)); buf);
#else #else
switch (cmd) { switch (cmd) {
case SHM_STAT: case SHM_STAT:
@ -86,8 +84,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
#endif #endif
break; break;
default: default:
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
CHECK_1 (buf));
} }
{ {
@ -101,7 +98,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
/* Unfortunately there is no way how to find out for sure whether /* Unfortunately there is no way how to find out for sure whether
we should use old or new shmctl. */ we should use old or new shmctl. */
result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0, result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
CHECK_1 (buf)); buf);
if (result != -1 || errno != EINVAL) if (result != -1 || errno != EINVAL)
return result; return result;

View File

@ -21,7 +21,6 @@
#include <sysdep-cancel.h> #include <sysdep-cancel.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#ifdef __NR_rt_sigtimedwait #ifdef __NR_rt_sigtimedwait
@ -52,7 +51,7 @@ do_sigtimedwait (const sigset_t *set, siginfo_t *info,
/* XXX The size argument hopefully will have to be changed to the /* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */ real size of the user-level sigset_t. */
int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
CHECK_1 (info), timeout, _NSIG / 8); info, timeout, _NSIG / 8);
/* The kernel generates a SI_TKILL code in si_code in case tkill is /* The kernel generates a SI_TKILL code in si_code in case tkill is
used. tkill is transparently used in raise(). Since having used. tkill is transparently used in raise(). Since having

View File

@ -23,7 +23,6 @@
#include <sysdep-cancel.h> #include <sysdep-cancel.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#ifdef __NR_rt_sigtimedwait #ifdef __NR_rt_sigtimedwait
@ -53,7 +52,7 @@ do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
/* XXX The size argument hopefully will have to be changed to the /* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */ real size of the user-level sigset_t. */
int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
CHECK_1 (info), NULL, _NSIG / 8); info, NULL, _NSIG / 8);
/* The kernel generates a SI_TKILL code in si_code in case tkill is /* The kernel generates a SI_TKILL code in si_code in case tkill is
used. tkill is transparently used in raise(). Since having used. tkill is transparently used in raise(). Since having

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Allows to control internal state and destruction of message queue /* Allows to control internal state and destruction of message queue
objects. */ objects. */
@ -33,5 +32,5 @@ msgctl (msqid, cmd, buf)
int cmd; int cmd;
struct msqid_ds *buf; struct msqid_ds *buf;
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf)); return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
} }

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Provide operations to control over shared memory segments. */ /* Provide operations to control over shared memory segments. */
@ -32,5 +31,5 @@ shmctl (shmid, cmd, buf)
int cmd; int cmd;
struct shmid_ds *buf; struct shmid_ds *buf;
{ {
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, CHECK_1 (buf)); return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
} }

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
int int
ustat (dev_t dev, struct ustat *ubuf) ustat (dev_t dev, struct ustat *ubuf)
@ -37,5 +36,5 @@ ustat (dev_t dev, struct ustat *ubuf)
return -1; return -1;
} }
return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, CHECK_1 (ubuf)); return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
} }

View File

@ -26,14 +26,13 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Get information about the file FD in BUF. */ /* Get information about the file FD in BUF. */
int int
__fxstat (int vers, int fd, struct stat *buf) __fxstat (int vers, int fd, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX) if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 (buf)); return INLINE_SYSCALL (fstat, 2, fd, buf);
__set_errno (EINVAL); __set_errno (EINVAL);
return -1; return -1;

View File

@ -29,7 +29,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <kernel-features.h> #include <kernel-features.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Get information about the file NAME relative to FD in ST. */ /* Get information about the file NAME relative to FD in ST. */
@ -95,9 +94,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
res = INTERNAL_SYSCALL (lstat, err, 2, file, CHECK_1 (st)); res = INTERNAL_SYSCALL (lstat, err, 2, file, st);
else else
res = INTERNAL_SYSCALL (stat, err, 2, file, CHECK_1 (st)); res = INTERNAL_SYSCALL (stat, err, 2, file, st);
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0)) if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0))
{ {

View File

@ -26,14 +26,13 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Get information about the file FD in BUF. */ /* Get information about the file FD in BUF. */
int int
__lxstat (int vers, const char *name, struct stat *buf) __lxstat (int vers, const char *name, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX) if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
return INLINE_SYSCALL (lstat, 2, name, CHECK_1 (buf)); return INLINE_SYSCALL (lstat, 2, name, buf);
__set_errno (EINVAL); __set_errno (EINVAL);
return -1; return -1;

View File

@ -26,14 +26,13 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Get information about the file NAME in BUF. */ /* Get information about the file NAME in BUF. */
int int
__xstat (int vers, const char *name, struct stat *buf) __xstat (int vers, const char *name, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX) if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
return INLINE_SYSCALL (stat, 2, name, CHECK_1 (buf)); return INLINE_SYSCALL (stat, 2, name, buf);
__set_errno (EINVAL); __set_errno (EINVAL);
return -1; return -1;

View File

@ -27,7 +27,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <xstatconv.h> #include <xstatconv.h>
@ -36,8 +35,7 @@ int
__xstat (int vers, const char *name, struct stat *buf) __xstat (int vers, const char *name, struct stat *buf)
{ {
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL (stat, 2, name, return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf);
CHECK_1 ((struct kernel_stat *) buf));
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
errno = EINVAL; errno = EINVAL;

View File

@ -23,7 +23,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -33,7 +32,7 @@ int
___xstat64 (int vers, const char *name, struct stat64 *buf) ___xstat64 (int vers, const char *name, struct stat64 *buf)
{ {
int result; int result;
result = INLINE_SYSCALL (stat64, 2, name, CHECK_1 (buf)); result = INLINE_SYSCALL (stat64, 2, name, buf);
#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino) if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
buf->st_ino = buf->__st_ino; buf->st_ino = buf->__st_ino;