diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/Dist | 2 | ||||
-rw-r--r-- | sysdeps/generic/enbl-secure.c | 8 | ||||
-rw-r--r-- | sysdeps/generic/ftruncate.c | 8 | ||||
-rw-r--r-- | sysdeps/generic/glob.c | 18 | ||||
-rw-r--r-- | sysdeps/mach/hurd/ftruncate.c | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/truncate.c | 9 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aio_sigqueue.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/init-first.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigqueue.c | 8 |
9 files changed, 30 insertions, 35 deletions
diff --git a/sysdeps/generic/Dist b/sysdeps/generic/Dist index 5d4075402d..36133eb9fa 100644 --- a/sysdeps/generic/Dist +++ b/sysdeps/generic/Dist @@ -1,6 +1,6 @@ make_siglist.c signame.c signame.h det_endian.c entry.h -errno-loc.c. +errno-loc.c getresgid.c getresuid.c diff --git a/sysdeps/generic/enbl-secure.c b/sysdeps/generic/enbl-secure.c index 3f3fe23c54..7dcd4391fa 100644 --- a/sysdeps/generic/enbl-secure.c +++ b/sysdeps/generic/enbl-secure.c @@ -1,5 +1,5 @@ /* Define and initialize the `__libc_enable_secure' flag. Generic version. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,13 +26,9 @@ /* Safest assumption, if somehow the initializer isn't run. */ int __libc_enable_secure = 1; -/* We often need the UID. */ -extern uid_t __libc_uid; - void __libc_init_secure (void) { - __libc_uid = __getuid (); - __libc_enable_secure = (__geteuid () != __libc_uid + __libc_enable_secure = (__geteuid () != __getuid () || __getegid () != __getgid ()); } diff --git a/sysdeps/generic/ftruncate.c b/sysdeps/generic/ftruncate.c index 8e067ac2b8..ece306f994 100644 --- a/sysdeps/generic/ftruncate.c +++ b/sysdeps/generic/ftruncate.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,13 +16,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <sys/types.h> #include <errno.h> +#include <sys/types.h> #include <unistd.h> /* Truncate the file FD refers to to LENGTH bytes. */ int -ftruncate (fd, length) +__ftruncate (fd, length) int fd; off_t length; { @@ -30,5 +30,7 @@ ftruncate (fd, length) return -1; } +weak_alias (__ftruncate, ftruncate) + stub_warning (ftruncate) #include <stub-tag.h> diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c index 29697f4c55..c26b2a6115 100644 --- a/sysdeps/generic/glob.c +++ b/sysdeps/generic/glob.c @@ -253,14 +253,16 @@ extern char *alloca (); /* Some system header files erroneously define these. We want our own definitions from <glob.h> to take precedence. */ -#undef GLOB_ERR -#undef GLOB_MARK -#undef GLOB_NOSORT -#undef GLOB_DOOFFS -#undef GLOB_NOCHECK -#undef GLOB_APPEND -#undef GLOB_NOESCAPE -#undef GLOB_PERIOD +#ifndef __GNU_LIBRARY__ +# undef GLOB_ERR +# undef GLOB_MARK +# undef GLOB_NOSORT +# undef GLOB_DOOFFS +# undef GLOB_NOCHECK +# undef GLOB_APPEND +# undef GLOB_NOESCAPE +# undef GLOB_PERIOD +#endif #include <glob.h> static diff --git a/sysdeps/mach/hurd/ftruncate.c b/sysdeps/mach/hurd/ftruncate.c index 67f428e55d..2e384f242e 100644 --- a/sysdeps/mach/hurd/ftruncate.c +++ b/sysdeps/mach/hurd/ftruncate.c @@ -16,15 +16,15 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <sys/types.h> #include <errno.h> +#include <sys/types.h> #include <unistd.h> #include <hurd.h> #include <hurd/fd.h> /* Truncate the file FD refers to to LENGTH bytes. */ int -ftruncate (fd, length) +__ftruncate (fd, length) int fd; __off_t length; { diff --git a/sysdeps/mach/hurd/truncate.c b/sysdeps/mach/hurd/truncate.c index ae1f7b887b..438015ee93 100644 --- a/sysdeps/mach/hurd/truncate.c +++ b/sysdeps/mach/hurd/truncate.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 95, 97, 98 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,15 +16,16 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include <sys/types.h> #include <errno.h> -#include <hurd.h> #include <fcntl.h> +#include <sys/types.h> +#include <unistd.h> +#include <hurd.h> /* Truncate FILE_NAME to LENGTH bytes. */ int truncate (file_name, length) - char *file_name; + const char *file_name; off_t length; { error_t err; diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c index b962396291..1520ee1a29 100644 --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,9 +24,8 @@ extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); -/* These variables are used quite often in the libc code. */ +/* This variable is used quite often in the libc code. */ extern pid_t __libc_pid; -extern uid_t __libc_uid; /* Return any pending signal or wait for one for the given time. */ @@ -46,7 +45,7 @@ __aio_sigqueue (sig, val) __libc_pid = __getpid (); info.si_pid = __libc_pid; - info.si_uid = __libc_uid; + info.si_uid = getuid (); info.si_value = val; diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c index acaf5093a4..c6bf6fb1a4 100644 --- a/sysdeps/unix/sysv/linux/init-first.c +++ b/sysdeps/unix/sysv/linux/init-first.c @@ -45,7 +45,6 @@ char **__libc_argv; /* We often need the UID and PID. Cache these values. */ pid_t __libc_pid = 0xf00baa; -uid_t __libc_uid = 0xf00baa; static void diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c index 92026ef153..495238660d 100644 --- a/sysdeps/unix/sysv/linux/sigqueue.c +++ b/sysdeps/unix/sysv/linux/sigqueue.c @@ -23,7 +23,6 @@ extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); /* These variables are used quite often in the libc code. */ extern pid_t __libc_pid; -extern uid_t __libc_uid; /* Return any pending signal or wait for one for the given time. */ @@ -40,14 +39,11 @@ __sigqueue (pid, sig, val) info.si_errno = 0; info.si_code = SI_QUEUE; - if (__libc_pid ==0xf00baa) + if (__libc_pid == 0xf00baa) __libc_pid = __getpid (); info.si_pid = __libc_pid; - if (__libc_uid ==0xf00baa) - __libc_pid = __getuid (); - info.si_uid = __libc_uid; - + info.si_uid = __getuid (); info.si_value = val; return __syscall_rt_sigqueueinfo (pid, sig, &info); |