mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
Remove CHECK_1 and CHECK_1_NULL_OK.
This commit is contained in:
parent
b2c9eff43c
commit
f3aae3f3eb
93
ChangeLog
93
ChangeLog
@ -1,5 +1,98 @@
|
||||
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]
|
||||
* sysdeps/generic/bp-checks.h (CHECK_BOUNDS_LOW): Remove all
|
||||
definitions.
|
||||
|
@ -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>
|
||||
|
||||
* sysdeps/aarch64/strncmp.S: New 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>
|
||||
|
||||
[BZ #13550]
|
||||
|
@ -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>
|
||||
|
||||
[BZ #13550]
|
||||
|
@ -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>
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Add a missing
|
||||
|
@ -22,7 +22,6 @@
|
||||
#undef __gettimeofday
|
||||
|
||||
#include <bits/libc-vdso.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Get the current time of day and timezone information,
|
||||
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 timezone *tz;
|
||||
{
|
||||
return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
|
||||
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
|
||||
}
|
||||
libc_hidden_def (__gettimeofday)
|
||||
weak_alias (__gettimeofday, gettimeofday)
|
||||
|
@ -21,13 +21,12 @@
|
||||
#include <ipc_priv.h>
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
|
||||
int
|
||||
__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>
|
||||
|
@ -22,13 +22,12 @@
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bits/wordsize.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
|
||||
int
|
||||
__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>
|
||||
|
@ -26,7 +26,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* The variable is shared between all wrappers around signal handling
|
||||
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
|
||||
real size of the user-level sigset_t. */
|
||||
return INLINE_SYSCALL (rt_sigaction, 4, sig,
|
||||
CHECK_1_NULL_OK (act), CHECK_1_NULL_OK (oact), _NSIG / 8);
|
||||
return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
|
||||
}
|
||||
libc_hidden_def (__libc_sigaction)
|
||||
|
||||
|
@ -20,14 +20,12 @@
|
||||
#include <ipc_priv.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)
|
||||
{
|
||||
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>
|
||||
|
@ -20,14 +20,12 @@
|
||||
#include <ipc_priv.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)
|
||||
{
|
||||
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>
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
int
|
||||
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. */
|
||||
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);
|
||||
}
|
||||
|
@ -36,18 +36,11 @@
|
||||
/* Same as CHECK_N, but tolerate ARG == NULL. */
|
||||
# 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__ */
|
||||
|
||||
/* Do nothing if not compiling with -fbounded-pointers. */
|
||||
|
||||
# define BOUNDS_VIOLATED
|
||||
# define CHECK_1(ARG) (ARG)
|
||||
# define CHECK_1_NULL_OK(ARG) (ARG)
|
||||
# define CHECK_N(ARG, N) (ARG)
|
||||
# define CHECK_N_NULL_OK(ARG, N) (ARG)
|
||||
|
||||
|
@ -28,7 +28,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <xstatconv.h>
|
||||
|
||||
@ -37,7 +36,7 @@ int
|
||||
__fxstat (int vers, int fd, struct stat *buf)
|
||||
{
|
||||
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
|
||||
errno = EINVAL;
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -33,7 +32,7 @@ int
|
||||
___fxstat64 (int vers, int fd, struct stat64 *buf)
|
||||
{
|
||||
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 (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
|
||||
buf->st_ino = buf->__st_ino;
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
#include <kernel-features.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)
|
||||
result = INTERNAL_SYSCALL (lstat, err, 2, file,
|
||||
CHECK_1 ((struct kernel_stat *) st));
|
||||
(struct kernel_stat *) st);
|
||||
else
|
||||
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))
|
||||
return result;
|
||||
|
@ -25,7 +25,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.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)
|
||||
result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st));
|
||||
result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
|
||||
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 defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -40,7 +39,7 @@ __fxstat (int vers, int fd, struct stat *buf)
|
||||
int result;
|
||||
|
||||
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;
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.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)
|
||||
result = INTERNAL_SYSCALL (lstat, err, 2, file,
|
||||
CHECK_1 ((struct kernel_stat *) st));
|
||||
(struct kernel_stat *) st);
|
||||
else
|
||||
result = INTERNAL_SYSCALL (stat, err, 2, file,
|
||||
CHECK_1 ((struct kernel_stat *) st));
|
||||
(struct kernel_stat *) st);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -23,15 +23,13 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Consider moving to syscalls.list. */
|
||||
|
||||
int
|
||||
__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
|
||||
{
|
||||
return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid),
|
||||
CHECK_1 (egid), CHECK_1 (sgid));
|
||||
return INLINE_SYSCALL (getresgid32, 3, rgid, egid, sgid);
|
||||
}
|
||||
libc_hidden_def (__getresgid)
|
||||
weak_alias (__getresgid, getresgid)
|
||||
|
@ -23,15 +23,13 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Consider moving to syscalls.list. */
|
||||
|
||||
int
|
||||
__getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
|
||||
{
|
||||
return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid),
|
||||
CHECK_1 (euid), CHECK_1 (suid));
|
||||
return INLINE_SYSCALL (getresuid32, 3, ruid, euid, suid);
|
||||
}
|
||||
libc_hidden_def (__getresuid)
|
||||
weak_alias (__getresuid, getresuid)
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -41,7 +40,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
|
||||
int result;
|
||||
|
||||
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;
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include <sysdep.h>
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
||||
@ -56,8 +55,7 @@ int
|
||||
attribute_compat_text_section
|
||||
__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);
|
||||
#endif
|
||||
@ -66,7 +64,7 @@ int
|
||||
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
{
|
||||
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);
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <shlib-compat.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
extern int __new_setrlimit (enum __rlimit_resource resource,
|
||||
const struct rlimit *__unboundedrlimits);
|
||||
@ -32,7 +31,7 @@ extern int __new_setrlimit (enum __rlimit_resource resource,
|
||||
int
|
||||
__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);
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bits/wordsize.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
||||
@ -63,8 +62,7 @@ int
|
||||
attribute_compat_text_section
|
||||
__old_shmctl (int shmid, int cmd, struct __old_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);
|
||||
}
|
||||
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
|
||||
#endif
|
||||
@ -73,7 +71,7 @@ int
|
||||
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
{
|
||||
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);
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -41,7 +40,7 @@ __xstat (int vers, const char *name, struct stat *buf)
|
||||
int result;
|
||||
|
||||
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;
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <xstatconv.h>
|
||||
|
||||
@ -36,8 +35,7 @@ int
|
||||
__lxstat (int vers, const char *name, struct stat *buf)
|
||||
{
|
||||
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);
|
||||
|
||||
#ifdef STAT_IS_KERNEL_STAT
|
||||
errno = EINVAL;
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -32,7 +31,7 @@ int
|
||||
___lxstat64 (int vers, const char *name, struct stat64 *buf)
|
||||
{
|
||||
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 (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
|
||||
buf->st_ino = buf->__st_ino;
|
||||
|
@ -24,7 +24,6 @@
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <shlib-compat.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -57,7 +56,7 @@ int
|
||||
attribute_compat_text_section
|
||||
__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);
|
||||
#endif
|
||||
@ -67,7 +66,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
{
|
||||
#if __ASSUME_IPC64 > 0
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
|
||||
msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
|
||||
msqid, cmd | __IPC_64, 0, buf);
|
||||
#else
|
||||
switch (cmd) {
|
||||
case MSG_STAT:
|
||||
@ -76,7 +75,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
break;
|
||||
default:
|
||||
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
|
||||
we should use old or new 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)
|
||||
return result;
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <bp-checks.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
|
||||
struct timeval *tv;
|
||||
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)
|
||||
weak_alias (__gettimeofday, gettimeofday)
|
||||
|
@ -24,7 +24,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
long int
|
||||
ptrace (enum __ptrace_request request, ...)
|
||||
@ -43,77 +42,6 @@ ptrace (enum __ptrace_request request, ...)
|
||||
if (request > 0 && request < 4)
|
||||
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,
|
||||
__ptrvalue (addr), __ptrvalue (data));
|
||||
if (res >= 0 && request > 0 && request < 4)
|
||||
|
@ -16,7 +16,6 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <bp-checks.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
|
||||
struct timeval *tv;
|
||||
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)
|
||||
weak_alias (__gettimeofday, gettimeofday)
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include <sys/syscall.h>
|
||||
#include <bits/wordsize.h>
|
||||
#include <shlib-compat.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -64,8 +63,7 @@ int
|
||||
attribute_compat_text_section
|
||||
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
|
||||
{
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
|
||||
cmd, 0, CHECK_1_NULL_OK (buf));
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
|
||||
}
|
||||
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
|
||||
#endif
|
||||
@ -75,7 +73,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
{
|
||||
#if __ASSUME_IPC64 > 0
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
|
||||
CHECK_1 (buf));
|
||||
buf);
|
||||
#else
|
||||
switch (cmd) {
|
||||
case SHM_STAT:
|
||||
@ -86,8 +84,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0,
|
||||
CHECK_1 (buf));
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, 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
|
||||
we should use old or new shmctl. */
|
||||
result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
|
||||
CHECK_1 (buf));
|
||||
buf);
|
||||
if (result != -1 || errno != EINVAL)
|
||||
return result;
|
||||
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
#include <sysdep-cancel.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#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
|
||||
real size of the user-level sigset_t. */
|
||||
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
|
||||
used. tkill is transparently used in raise(). Since having
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#include <sysdep-cancel.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#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
|
||||
real size of the user-level sigset_t. */
|
||||
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
|
||||
used. tkill is transparently used in raise(). Since having
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Allows to control internal state and destruction of message queue
|
||||
objects. */
|
||||
@ -33,5 +32,5 @@ msgctl (msqid, cmd, buf)
|
||||
int cmd;
|
||||
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);
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Provide operations to control over shared memory segments. */
|
||||
|
||||
@ -32,5 +31,5 @@ shmctl (shmid, cmd, buf)
|
||||
int cmd;
|
||||
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);
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
int
|
||||
ustat (dev_t dev, struct ustat *ubuf)
|
||||
@ -37,5 +36,5 @@ ustat (dev_t dev, struct ustat *ubuf)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, CHECK_1 (ubuf));
|
||||
return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
|
||||
}
|
||||
|
@ -26,14 +26,13 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Get information about the file FD in BUF. */
|
||||
int
|
||||
__fxstat (int vers, int fd, struct stat *buf)
|
||||
{
|
||||
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);
|
||||
return -1;
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include <sysdep.h>
|
||||
#include <kernel-features.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
|
||||
/* 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);
|
||||
|
||||
if (flag & AT_SYMLINK_NOFOLLOW)
|
||||
res = INTERNAL_SYSCALL (lstat, err, 2, file, CHECK_1 (st));
|
||||
res = INTERNAL_SYSCALL (lstat, err, 2, file, st);
|
||||
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))
|
||||
{
|
||||
|
@ -26,14 +26,13 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Get information about the file FD in BUF. */
|
||||
int
|
||||
__lxstat (int vers, const char *name, struct stat *buf)
|
||||
{
|
||||
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);
|
||||
return -1;
|
||||
|
@ -26,14 +26,13 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
/* Get information about the file NAME in BUF. */
|
||||
int
|
||||
__xstat (int vers, const char *name, struct stat *buf)
|
||||
{
|
||||
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);
|
||||
return -1;
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <xstatconv.h>
|
||||
|
||||
@ -36,8 +35,7 @@ int
|
||||
__xstat (int vers, const char *name, struct stat *buf)
|
||||
{
|
||||
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);
|
||||
|
||||
#ifdef STAT_IS_KERNEL_STAT
|
||||
errno = EINVAL;
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bp-checks.h>
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -33,7 +32,7 @@ int
|
||||
___xstat64 (int vers, const char *name, struct stat64 *buf)
|
||||
{
|
||||
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 (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
|
||||
buf->st_ino = buf->__st_ino;
|
||||
|
Loading…
Reference in New Issue
Block a user