Remove CHECK_STRING, CHECK_STRING_NULL_OK and __ubp_memchr.

This commit is contained in:
Joseph Myers 2013-02-04 16:29:39 +00:00
parent 903ae060db
commit 6277fdabc0
39 changed files with 143 additions and 130 deletions

View File

@ -1,3 +1,66 @@
2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/generic/bp-checks.h [__BOUNDED_POINTERS__]
(__ubp_memchr): Remove prototype.
[__BOUNDED_POINTERS__] (_CHECK_STRING): Remove macro.
[__BOUNDED_POINTERS__] (CHECK_STRING): Likewise.
[__BOUNDED_POINTERS__] (CHECK_STRING_NULL_OK): Likewise.
[!__BOUNDED_POINTERS__] (CHECK_STRING): Likewise.
* sysdeps/i386/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
Remove alias.
* sysdeps/sparc/sparc32/memchr.S [!__BOUNDED_POINTERS__]
(__ubp_memchr): Likewise.
* sysdeps/sparc/sparc64/memchr.S [!__BOUNDED_POINTERS__]
(__ubp_memchr): Likewise.
* sysdeps/unix/sysv/linux/execve.c: Do not include <bp-checks.h>.
(__execve) [__BOUNDED_POINTERS__]: Remove conditional code.
(__execve) [!__BOUNDED_POINTERS__]: Make code unconditional.
* sysdeps/unix/sysv/linux/fxstatat.c (__fxstatat): Do not use
CHECK_STRING.
* sysdeps/unix/sysv/linux/fxstatat64.c (__fxstatat64): Likewise.
* sysdeps/unix/sysv/linux/getcwd.c: Do not include <bp-checks.h>.
(__getcwd): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/i386/chown.c: Do not include
<bp-checks.h>.
(__real_chown): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/i386/fchownat.c: Do not include
<bp-checks.h>.
(fchownat): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/i386/fxstatat.c (__fxstatat): Do not use
CHECK_STRING.
* sysdeps/unix/sysv/linux/i386/lchown.c: Do not include
<bp-checks.h>.
(__lchown): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/i386/lxstat.c (__lxstat): Likewise.
* sysdeps/unix/sysv/linux/i386/xstat.c (__xstat): Likewise.
* sysdeps/unix/sysv/linux/lxstat.c (__lxstat): Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c (___lxstat64): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: Do not
include <bp-checks.h>.
(truncate64): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Do not include
<bp-checks.h>.
(__real_chown): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Do not include
<bp-checks.h>.
(__lchown): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/sh/chown.c: Do not include
<bp-checks.h>.
(__chown): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/truncate64.c: Do not include
<bp-checks.h>.
(truncate64): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/wordsize-64/lxstat.c (__lxstat):
Likewise.
* sysdeps/unix/sysv/linux/xmknod.c: Do not include <bp-checks.h>.
(__xmknod): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/xmknodat.c: Do not include
<bp-checks.h>.
(__xmknodat): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/xstat.c (__xstat): Likewise.
* sysdeps/unix/sysv/linux/xstat64.c (___xstat64): Likewise.
2013-02-04 Andreas Schwab <schwab@suse.de> 2013-02-04 Andreas Schwab <schwab@suse.de>
[BZ #14142] [BZ #14142]

View File

@ -1,3 +1,10 @@
2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/arm/truncate64.c: Do not include
<bp-checks.h>.
(truncate64): Do not use CHECK_STRING.
2013-01-02 Joseph Myers <joseph@codesourcery.com> 2013-01-02 Joseph Myers <joseph@codesourcery.com>
* All files with FSF copyright notices: Update copyright dates * All files with FSF copyright notices: Update copyright dates

View File

@ -1,3 +1,12 @@
2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/ia64/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
Remove alias.
* sysdeps/unix/sysv/linux/ia64/umount.c: Do not include
<bp-checks.h>.
(umount): Do not use CHECK_STRING.
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,9 @@
2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/m68k/memchr.S [!__BOUNDED_POINTERS__] (__ubp_memchr):
Remove alias.
2013-01-20 Andreas Schwab <schwab@linux-m68k.org> 2013-01-20 Andreas Schwab <schwab@linux-m68k.org>
* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update. * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update.

View File

@ -1,3 +1,19 @@
2013-02-04 Joseph Myers <joseph@codesourcery.com>
[BZ #13550]
* sysdeps/unix/sysv/linux/mips/mips32/truncate64.c: Do not include
<bp-checks.h>.
(truncate64): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c: Do not include
<bp-checks.h>.
(__fxstatat64): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c: Do not include
<bp-checks.h>.
(__lxstat64): Do not use CHECK_STRING.
* sysdeps/unix/sysv/linux/mips/mips64/xstat64.c: Do not include
<bp-checks.h>.
(__xstat64): Do not use CHECK_STRING.
2013-01-31 Joseph Myers <joseph@codesourcery.com> 2013-01-31 Joseph Myers <joseph@codesourcery.com>
[BZ #13550] [BZ #13550]

View File

@ -154,7 +154,4 @@ ENTRY(__memchr)
END(__memchr) END(__memchr)
weak_alias (__memchr, memchr) weak_alias (__memchr, memchr)
#if !__BOUNDED_POINTERS__
weak_alias (__memchr, __ubp_memchr)
#endif
libc_hidden_builtin_def (memchr) libc_hidden_builtin_def (memchr)

View File

@ -304,7 +304,4 @@ L(L9:)
END(__memchr) END(__memchr)
weak_alias (__memchr, memchr) weak_alias (__memchr, memchr)
#if !__BOUNDED_POINTERS__
weak_alias (__memchr, __ubp_memchr)
#endif
libc_hidden_builtin_def (memchr) libc_hidden_builtin_def (memchr)

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Truncate the file FD refers to to LENGTH bytes. */ /* Truncate the file FD refers to to LENGTH bytes. */
int int
@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
{ {
unsigned int low = length & 0xffffffff; unsigned int low = length & 0xffffffff;
unsigned int high = length >> 32; unsigned int high = length >> 32;
int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0, int result = INLINE_SYSCALL (truncate64, 4, path, 0,
__LONG_LONG_PAIR (high, low)); __LONG_LONG_PAIR (high, low));
return result; return result;
} }

View File

@ -20,11 +20,10 @@
#include <errno.h> #include <errno.h>
#include <sysdep.h> #include <sysdep.h>
#include <bp-checks.h>
/* Unmount a filesystem. */ /* Unmount a filesystem. */
int int
umount (const char *special_file) umount (const char *special_file)
{ {
return INLINE_SYSCALL (umount, 2, CHECK_STRING (special_file), 0); return INLINE_SYSCALL (umount, 2, special_file, 0);
} }

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Truncate the file FD refers to to LENGTH bytes. */ /* Truncate the file FD refers to to LENGTH bytes. */
int int
@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
{ {
unsigned int low = length & 0xffffffff; unsigned int low = length & 0xffffffff;
unsigned int high = length >> 32; unsigned int high = length >> 32;
int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0, int result = INLINE_SYSCALL (truncate64, 4, path, 0,
__LONG_LONG_PAIR (high, low)); __LONG_LONG_PAIR (high, low));
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>
@ -96,11 +95,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 (lstat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
__ptrvalue (&kst));
else else
result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
__ptrvalue (&kst));
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return __xstat64_conv (vers, &kst, st); return __xstat64_conv (vers, &kst, st);

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 <xstatconv.h> #include <xstatconv.h>
@ -34,7 +33,7 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
int result; int result;
struct kernel_stat kbuf; struct kernel_stat kbuf;
result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf)); result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
if (result == 0) if (result == 0)
result = __xstat64_conv (vers, &kbuf, buf); result = __xstat64_conv (vers, &kbuf, buf);

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 <xstatconv.h> #include <xstatconv.h>
@ -35,7 +34,7 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
int result; int result;
struct kernel_stat kbuf; struct kernel_stat kbuf;
result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf)); result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
if (result == 0) if (result == 0)
result = __xstat64_conv (vers, &kbuf, buf); result = __xstat64_conv (vers, &kbuf, buf);

View File

@ -41,16 +41,6 @@
&& BOUNDS_VIOLATED), \ && BOUNDS_VIOLATED), \
__ptrvalue (ARG)) __ptrvalue (ARG))
extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
# define _CHECK_STRING(ARG, COND) \
(((COND) \
&& (__ptrvalue (ARG) < __ptrlow (ARG) \
|| !__ubp_memchr (__ptrvalue (ARG), '\0', \
(__ptrhigh (ARG) - __ptrvalue (ARG)))) \
&& BOUNDS_VIOLATED), \
__ptrvalue (ARG))
/* Check bounds of a pointer seated to an array of N objects. */ /* Check bounds of a pointer seated to an array of N objects. */
# define CHECK_N(ARG, N) _CHECK_N ((ARG), (N), 1) # define CHECK_N(ARG, N) _CHECK_N ((ARG), (N), 1)
/* Same as CHECK_N, but tolerate ARG == NULL. */ /* Same as CHECK_N, but tolerate ARG == NULL. */
@ -61,11 +51,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
/* Same as CHECK_1, but tolerate ARG == NULL. */ /* Same as CHECK_1, but tolerate ARG == NULL. */
# define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1) # define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1)
/* Check for NUL-terminator within string's bounds. */
# define CHECK_STRING(ARG) _CHECK_STRING ((ARG), 1)
/* Same as CHECK_STRING, but tolerate ARG == NULL. */
# define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
#else /* !__BOUNDED_POINTERS__ */ #else /* !__BOUNDED_POINTERS__ */
/* Do nothing if not compiling with -fbounded-pointers. */ /* Do nothing if not compiling with -fbounded-pointers. */
@ -77,7 +62,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
# define CHECK_1_NULL_OK(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)
# define CHECK_STRING(ARG) (ARG)
#endif /* !__BOUNDED_POINTERS__ */ #endif /* !__BOUNDED_POINTERS__ */

View File

@ -333,7 +333,4 @@ L(pop): popl %edi /* pop saved registers */
END (BP_SYM (__memchr)) END (BP_SYM (__memchr))
weak_alias (BP_SYM (__memchr), BP_SYM (memchr)) weak_alias (BP_SYM (__memchr), BP_SYM (memchr))
#if !__BOUNDED_POINTERS__
weak_alias (__memchr, __ubp_memchr)
#endif
libc_hidden_builtin_def (memchr) libc_hidden_builtin_def (memchr)

View File

@ -139,7 +139,4 @@ ENTRY(__memchr)
END(__memchr) END(__memchr)
weak_alias (__memchr, memchr) weak_alias (__memchr, memchr)
#if !__BOUNDED_POINTERS__
weak_alias (__memchr, __ubp_memchr)
#endif
libc_hidden_builtin_def (memchr) libc_hidden_builtin_def (memchr)

View File

@ -256,7 +256,4 @@ ENTRY(__memchr)
END(__memchr) END(__memchr)
weak_alias (__memchr, memchr) weak_alias (__memchr, memchr)
#if !__BOUNDED_POINTERS__
weak_alias (__memchr, __ubp_memchr)
#endif
libc_hidden_builtin_def (memchr) libc_hidden_builtin_def (memchr)

View File

@ -21,7 +21,8 @@
#include <sysdep.h> #include <sysdep.h>
#include <alloca.h> #include <alloca.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Consider moving to syscalls.list. */
int int
__execve (file, argv, envp) __execve (file, argv, envp)
@ -29,34 +30,6 @@ __execve (file, argv, envp)
char *const argv[]; char *const argv[];
char *const envp[]; char *const envp[];
{ {
#if __BOUNDED_POINTERS__
{
char *const *v;
int i;
char *__unbounded *__unbounded ubp_argv;
char *__unbounded *__unbounded ubp_envp;
char *__unbounded *__unbounded ubp_v;
for (v = argv; *v; v++)
;
i = v - argv + 1;
ubp_argv = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_argv) * i);
for (v = argv, ubp_v = ubp_argv; --i; v++, ubp_v++)
*ubp_v = CHECK_STRING (*v);
*ubp_v = 0;
for (v = envp; *v; v++)
;
i = v - envp + 1;
ubp_envp = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_envp) * i);
for (v = envp, ubp_v = ubp_envp; --i; v++, ubp_v++)
*ubp_v = CHECK_STRING (*v);
*ubp_v = 0;
return INLINE_SYSCALL (execve, 3, CHECK_STRING (file), ubp_argv, ubp_envp);
}
#else
return INLINE_SYSCALL (execve, 3, file, argv, envp); return INLINE_SYSCALL (execve, 3, file, argv, envp);
#endif
} }
weak_alias (__execve, execve) weak_alias (__execve, execve)

View File

@ -109,10 +109,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
{ {
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); CHECK_1 ((struct kernel_stat *) st));
else else
result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); CHECK_1 ((struct kernel_stat *) st));
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
@ -126,11 +126,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
} }
#else #else
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
__ptrvalue (&kst));
else else
result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
__ptrvalue (&kst));
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return __xstat_conv (vers, &kst, st); return __xstat_conv (vers, &kst, st);

View File

@ -99,11 +99,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, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st));
CHECK_1 (st));
else else
result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat64, err, 2, file, CHECK_1 (st));
CHECK_1 (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

@ -26,7 +26,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>
@ -78,7 +77,7 @@ __getcwd (char *buf, size_t size)
int retval; int retval;
retval = INLINE_SYSCALL (getcwd, 2, CHECK_STRING (path), alloc_size); retval = INLINE_SYSCALL (getcwd, 2, path, alloc_size);
if (retval >= 0) if (retval >= 0)
{ {
#ifndef NO_ALLOCATION #ifndef NO_ALLOCATION

View File

@ -21,7 +21,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>
#include <linux/posix_types.h> #include <linux/posix_types.h>
@ -45,7 +44,7 @@ extern int __real_chown (const char *__file, uid_t __owner, gid_t __group);
int int
__real_chown (const char *file, uid_t owner, gid_t group) __real_chown (const char *file, uid_t owner, gid_t group)
{ {
return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group); return INLINE_SYSCALL (chown32, 3, file, owner, group);
} }

View File

@ -24,7 +24,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>
#include <linux/posix_types.h> #include <linux/posix_types.h>
#include <kernel-features.h> #include <kernel-features.h>
@ -86,11 +85,9 @@ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lchown32, err, 3, CHECK_STRING (file), owner, result = INTERNAL_SYSCALL (lchown32, err, 3, file, owner, group);
group);
else else
result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner, result = INTERNAL_SYSCALL (chown32, err, 3, file, owner, group);
group);
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0)) if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
{ {

View File

@ -102,20 +102,18 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
if (vers == _STAT_VER_KERNEL) if (vers == _STAT_VER_KERNEL)
{ {
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); CHECK_1 ((struct kernel_stat *) st));
else else
result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat, err, 2, file,
CHECK_1 ((struct kernel_stat *) st)); CHECK_1 ((struct kernel_stat *) st));
goto out; goto out;
} }
if (flag & AT_SYMLINK_NOFOLLOW) if (flag & AT_SYMLINK_NOFOLLOW)
result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (lstat64, err, 2, file, __ptrvalue (&st64));
__ptrvalue (&st64));
else else
result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file), result = INTERNAL_SYSCALL (stat64, err, 2, file, __ptrvalue (&st64));
__ptrvalue (&st64));
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
return __xstat32_conv (vers, &st64, st); return __xstat32_conv (vers, &st64, st);

View File

@ -20,7 +20,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <linux/posix_types.h> #include <linux/posix_types.h>
@ -29,7 +28,7 @@
int int
__lchown (const char *file, uid_t owner, gid_t group) __lchown (const char *file, uid_t owner, gid_t group)
{ {
return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group); return INLINE_SYSCALL (lchown32, 3, file, owner, group);
} }
weak_alias (__lchown, lchown) weak_alias (__lchown, lchown)

View File

@ -41,12 +41,12 @@ __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, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (lstat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
{ {
struct stat64 buf64; struct stat64 buf64;
result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), __ptrvalue (&buf64)); result = INLINE_SYSCALL (lstat64, 2, name, __ptrvalue (&buf64));
if (result == 0) if (result == 0)
result = __xstat32_conv (vers, &buf64, buf); result = __xstat32_conv (vers, &buf64, buf);
return result; return result;

View File

@ -41,12 +41,12 @@ __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, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf)); return INLINE_SYSCALL (stat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
{ {
struct stat64 buf64; struct stat64 buf64;
result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), __ptrvalue (&buf64)); result = INLINE_SYSCALL (stat64, 2, name, __ptrvalue (&buf64));
if (result == 0) if (result == 0)
result = __xstat32_conv (vers, &buf64, buf); result = __xstat32_conv (vers, &buf64, buf);
return result; return result;

View File

@ -36,7 +36,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, CHECK_STRING (name), return INLINE_SYSCALL (lstat, 2, name,
CHECK_1 ((struct kernel_stat *) buf)); CHECK_1 ((struct kernel_stat *) buf));
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
@ -46,7 +46,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
struct kernel_stat kbuf; struct kernel_stat kbuf;
int result; int result;
result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf)); result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
if (result == 0) if (result == 0)
result = __xstat_conv (vers, &kbuf, buf); result = __xstat_conv (vers, &kbuf, buf);

View File

@ -32,7 +32,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, CHECK_STRING (name), CHECK_1 (buf)); result = INLINE_SYSCALL (lstat64, 2, name, CHECK_1 (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

@ -21,7 +21,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Truncate the file referenced by FD to LENGTH bytes. */ /* Truncate the file referenced by FD to LENGTH bytes. */
int int
@ -30,7 +29,7 @@ truncate64 (path, length)
off64_t length; off64_t length;
{ {
/* On PPC32 64bit values are aligned in odd/even register pairs. */ /* On PPC32 64bit values are aligned in odd/even register pairs. */
int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0, int result = INLINE_SYSCALL (truncate64, 4, path, 0,
(long) (length >> 32), (long) (length >> 32),
(long) length); (long) length);
return result; return result;

View File

@ -21,7 +21,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>
#include <linux/posix_types.h> #include <linux/posix_types.h>
@ -42,7 +41,7 @@
int int
__real_chown (const char *file, uid_t owner, gid_t group) __real_chown (const char *file, uid_t owner, gid_t group)
{ {
return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group); return INLINE_SYSCALL (chown32, 3, file, owner, group);
} }

View File

@ -20,7 +20,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <linux/posix_types.h> #include <linux/posix_types.h>
@ -29,7 +28,7 @@
int int
__lchown (const char *file, uid_t owner, gid_t group) __lchown (const char *file, uid_t owner, gid_t group)
{ {
return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group); return INLINE_SYSCALL (lchown32, 3, file, owner, group);
} }
weak_alias (__lchown, lchown) weak_alias (__lchown, lchown)

View File

@ -20,7 +20,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
#include <linux/posix_types.h> #include <linux/posix_types.h>
@ -29,7 +28,7 @@
int int
__chown (const char *file, uid_t owner, gid_t group) __chown (const char *file, uid_t owner, gid_t group)
{ {
return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group); return INLINE_SYSCALL (chown32, 3, file, owner, group);
} }
libc_hidden_def (__chown) libc_hidden_def (__chown)
weak_alias (__chown, chown) weak_alias (__chown, chown)

View File

@ -22,7 +22,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Truncate the file referenced by FD to LENGTH bytes. */ /* Truncate the file referenced by FD to LENGTH bytes. */
int int
@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
{ {
unsigned int low = length & 0xffffffff; unsigned int low = length & 0xffffffff;
unsigned int high = length >> 32; unsigned int high = length >> 32;
int result = INLINE_SYSCALL (truncate64, 3, CHECK_STRING (path), int result = INLINE_SYSCALL (truncate64, 3, path,
__LONG_LONG_PAIR (high, low)); __LONG_LONG_PAIR (high, low));
return result; return result;
} }

View File

@ -33,7 +33,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 || vers == _STAT_VER_LINUX) if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf)); return INLINE_SYSCALL (lstat, 2, name, CHECK_1 (buf));
__set_errno (EINVAL); __set_errno (EINVAL);
return -1; return -1;

View File

@ -23,7 +23,6 @@
#include <sysdep.h> #include <sysdep.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <bp-checks.h>
/* Create a device file named PATH, with permission and special bits MODE /* Create a device file named PATH, with permission and special bits MODE
and device number DEV (which can be constructed from major and minor and device number DEV (which can be constructed from major and minor
@ -47,8 +46,7 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
return -1; return -1;
} }
return INLINE_SYSCALL (mknod, 3, CHECK_STRING (path), mode, return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev);
(unsigned int) k_dev);
} }
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)

View File

@ -26,7 +26,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>
/* Create a device file named PATH relative to FD, with permission and /* Create a device file named PATH relative to FD, with permission and
@ -92,8 +91,7 @@ __xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
file = buf; file = buf;
} }
return INLINE_SYSCALL (mknod, 3, CHECK_STRING (file), mode, return INLINE_SYSCALL (mknod, 3, file, mode, (unsigned int) k_dev);
(unsigned int) k_dev);
#endif #endif
} }

View File

@ -36,7 +36,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, CHECK_STRING (name), return INLINE_SYSCALL (stat, 2, name,
CHECK_1 ((struct kernel_stat *) buf)); CHECK_1 ((struct kernel_stat *) buf));
#ifdef STAT_IS_KERNEL_STAT #ifdef STAT_IS_KERNEL_STAT
@ -46,8 +46,7 @@ __xstat (int vers, const char *name, struct stat *buf)
struct kernel_stat kbuf; struct kernel_stat kbuf;
int result; int result;
result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
__ptrvalue (&kbuf));
if (result == 0) if (result == 0)
result = __xstat_conv (vers, &kbuf, buf); result = __xstat_conv (vers, &kbuf, buf);

View File

@ -33,7 +33,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, CHECK_STRING (name), CHECK_1 (buf)); result = INLINE_SYSCALL (stat64, 2, name, CHECK_1 (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;