diff options
author | Ulrich Drepper <drepper@redhat.com> | 1996-10-08 23:39:20 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1996-10-08 23:39:20 +0000 |
commit | 11336c165c25e5a467335ca742674b1d5ad6d982 (patch) | |
tree | d416c633f2bebd9b9cb3b7142396e3644805fec3 /sysdeps | |
parent | 6428aed93c1a132c4cd6a8c21de9d0248fed4c46 (diff) | |
download | glibc-11336c165c25e5a467335ca742674b1d5ad6d982.zip glibc-11336c165c25e5a467335ca742674b1d5ad6d982.tar.gz glibc-11336c165c25e5a467335ca742674b1d5ad6d982.tar.bz2 |
update from main archive 961008cvs/libc-961009
Wed Oct 9 00:30:33 1996 Ulrich Drepper <drepper@cygnus.com>
* inet/getnetgrent_r.c: Correct netgroup implementation. A
specification of a netgroup can also name another netgroup.
* nss/nss_files/files-netgrp.c: Likewise.
* inet/netgroup.h: Add fields to hold additional information.
Tue Oct 8 21:51:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us>
* posix/getopt.c: Implement POSIX -W option handling. When the
option string contains "W;" -W foo is handled like --foo.
Tue Oct 8 12:27:26 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/clone.S: Define _ERRNO_H before
inclusing <errnos.h> so we really get error symbols defined.
* sysdeps/unix/sysv/linux/m68k/clone.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
* sunrpc/auth_unix.c (authunix_create_default): Don't use fixed
size array for getgroups call. Instead get maximal number via
sysconf. But discard list to NGRPS elements before calling XDR
function since Sun's code cannot handle longer lists.
Based on a patch by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.
* sysdeps/stub/e_j0l.c: Define y0l as well.
* sysdeps/stub/e_j1l.c: Define y1l as well.
* sysdeps/stub/e_jnl.c: Define ynl as well.
* posix/unistd.h: Correct prototype for execlp.
* sysdeps/unix/sysv/linux/posix_opt.h: Define _POSIX_NO_TRUNC.
Mon Oct 7 22:18:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makeconfig (sysdep-library-path): New variable.
(built-program-cmd): Use it here to properly build a colon
separated library path.
Mon Oct 7 22:11:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* crypt/md5-crypt.c (md5_crypt_r): Add missing parens around &
within comparison. Fix comments.
(md5_crypt): Fix comment.
Tue Oct 8 05:10:49 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Only include <linux/errnos.h>
when _ERRNO_H is defined.
[!_ERRNO_H && __need_Emath]: Define value for EDOM and ERANGE.
Should there ever be a Linux port where the numeric values are
not 33 and 34 this file must change.
Mon Oct 7 13:54:04 1996 Ulrich Drepper <drepper@cygnus.com>
* libio/iofgets.c (_IO_fgets): Use _IO_flockfile instead of
__flockfile.
Mon Oct 7 11:01:45 1996 Andreas Jaeger <aj@arthur.pfalz.de>
* string/tst-strlen.c (main): Provide prototype.
* malloc/mallocbug.c: Likewise.
* io/test-utime.c: Likewise.
* sysdeps/generic/crypt-entry.c: Correct typo.
Mon Oct 7 13:42:20 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-open.c (_dl_open): Check against _dl_sysdep_start to
test for libc.a. Checking _DYNAMIC is of no worth here.
Suggested by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
* nss/nss_files/files-parse.c: Define LOOKUP_NAME even if
EXTERN_PARSER is defined.
Sat Oct 5 17:05:36 1996 Andreas Jaeger <aj@arthur.pfalz.de>
* Rules (dep-dummy-lib): Correct prototype for __dummy__.
* crypt/md5-crypt.c: Fix typos in comments.
* gmon/gmon.c: Provide prototypes.
* db/makedb.c: Likewise.
* locale/programs/xmalloc.c: Likewise.
* stdio-common/bug11.c (main): Likewise.
* stdio-common/bug7.c (main): Likewise.
* stdio-common/bug8.c (main): Likewise.
* stdio-common/bug9.c (main): Likewise.
* stdio-common/scanf1.c (main): Likewise.
* stdio-common/scanf2.c (main): Likewise.
* stdio-common/scanf5.c (main): Likewise.
* stdio-common/scanf6.c (main): Likewise.
* stdio-common/scanf7.c (main): Likewise.
* stdio-common/scanf8.c (main): Likewise.
* stdio-common/temptest.c (main): Likewise.
* stdio-common/test-fwrite.c (main): Likewise.
* stdio-common/tst-printf.c: Likewise.
* stdio-common/tstdiomisc.c: Likewise.
* stdio-common/tstgetln.c (main): Likewise.
* stdlib/testmb.c (main): Likewise.
* stdio-common/scanf4.c (main): Correct prototype, remove unused
variable n.
* stdio-common/scanf3.c (main): Correct prototype, change
declaration of s to reduce warnings.
* stdio-common/bug10.c (main): Likewise.
* stdio-common/tfformat.c: Provide prototype, remove unused
reference to dump_stats, add braces in sprint_doubles.
* stdio-common/tiformat.c: Likewise.
* stdio-common/test_rdwr.c (main): Parameter `where' is long in
printf call.
Mon Oct 7 14:04:26 1996 NIIBE Yutaka <gniibe@mri.co.jp>
* sysdeps/unix/sysv/linux/sys/soundcard.h: Fix typo.
* shadow/putspent.c: Don't write colon after flag field.
* sysdeps/unix/sysv/linux/net/if_ppp.h: New file. Wrapper around
kernel header.
* sysdeps/unix/sysv/linux/net/ppp-comp.h: Likewise.
* sysdeps/unix/sysv/linux/net/ppp_defs.h: Likewise.
* sysdeps/unix/sysv/linux/Dist: Mention new files.
Mon Oct 7 00:58:19 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i586/strchr.S: Correct handling of first bytes to
get pointer aligned. Reported by Matthias Urlichs <smurf@noris.de>.
* sysdeps/posix/euidaccess.c [_LIBC]: Avoid calling get?id functions
by using __libc_enable_secure variable.
* sysdeps/libm-i387/s_copysignl.S: Correct loading of return value.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/crypt-entry.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/i586/strchr.S | 25 | ||||
-rw-r--r-- | sysdeps/posix/euidaccess.c | 16 | ||||
-rw-r--r-- | sysdeps/stub/e_j0l.c | 9 | ||||
-rw-r--r-- | sysdeps/stub/e_j1l.c | 9 | ||||
-rw-r--r-- | sysdeps/stub/e_jnl.c | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Dist | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/errnos.h | 17 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/if_ppp.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/ppp-comp.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/ppp_defs.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/posix_opt.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/soundcard.h | 2 |
16 files changed, 83 insertions, 20 deletions
diff --git a/sysdeps/generic/crypt-entry.c b/sysdeps/generic/crypt-entry.c index 84c6974..de15904 100644 --- a/sysdeps/generic/crypt-entry.c +++ b/sysdeps/generic/crypt-entry.c @@ -32,7 +32,7 @@ static const char md5_salt_prefix[] = "$1$"; /* Prototypes for the MD5 encryption replacement functions. */ extern char *md5_crypt_r (const char *key, const char *salt, char *buffer, int buflen); -extern char *md5_crpyt (const char *key, const char *salt); +extern char *md5_crypt (const char *key, const char *salt); /* We recognize an intended call of the MD5 crypt replacement function diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S index bc435bf..8a6691f 100644 --- a/sysdeps/i386/i586/strchr.S +++ b/sysdeps/i386/i586/strchr.S @@ -68,21 +68,18 @@ ENTRY (strchr) andl $3, %edi /* mask alignment bits */ jz L11 /* alignment is 0 => start loop */ - jp L0 /* exactly two bits set */ - movb (%eax), %cl /* load single byte */ - cmpb (%eax), %dl /* is byte == C? */ + movb %dl, %cl /* 0 is needed below */ + jp L0 /* exactly two bits set */ - je L2 /* aligned => return pointer */ + xorb (%eax), %cl /* is byte the one we are looking for? */ + jz L2 /* yes => return pointer */ - cmpb $0, %cl /* is byte NUL? */ + xorb %dl, %cl /* load single byte and test for NUL */ je L3 /* yes => return NULL */ - incl %eax /* increment pointer */ - xorl $3, %edi /* was alignment == 3? */ - -L0: movb (%eax), %cl /* load single byte */ - je L11 /* yes => start loop */ + movb 1(%eax), %cl /* load single byte */ + incl %eax cmpb %cl, %dl /* is byte == C? */ je L2 /* aligned => return pointer */ @@ -90,8 +87,12 @@ L0: movb (%eax), %cl /* load single byte */ cmpb $0, %cl /* is byte NUL? */ je L3 /* yes => return NULL */ - movb 1(%eax), %cl /* load single byte */ - incl %eax /* increment pointer */ + incl %eax + decl %edi + + jne L11 + +L0: movb (%eax), %cl /* load single byte */ cmpb %cl, %dl /* is byte == C? */ je L2 /* aligned => return pointer */ diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c index f3a10c9..04648ce 100644 --- a/sysdeps/posix/euidaccess.c +++ b/sysdeps/posix/euidaccess.c @@ -137,8 +137,12 @@ euidaccess (path, mode) int granted; #ifdef _LIBC - uid_t uid = getuid (), euid = geteuid (); - gid_t gid = getgid (), egid = getegid (); + uid_t euid; + gid_t egid; + + if (! __libc_enable_secure) + /* If we are not set-uid or set-gid, access does the same. */ + return access (path, mode); #else if (have_ids == 0) { @@ -148,11 +152,11 @@ euidaccess (path, mode) euid = geteuid (); egid = getegid (); } -#endif if (uid == euid && gid == egid) /* If we are not set-uid or set-gid, access does the same. */ return access (path, mode); +#endif if (stat (path, &stats)) return -1; @@ -165,6 +169,12 @@ euidaccess (path, mode) if (mode == F_OK) return 0; /* The file exists. */ +#ifdef _LIBC + /* Now we need the IDs. */ + euid = geteuid (); + egid = getegid (); +#endif + /* The super-user can read and write any file, and execute any file that anyone can execute. */ if (euid == 0 && ((mode & X_OK) == 0 diff --git a/sysdeps/stub/e_j0l.c b/sysdeps/stub/e_j0l.c index 90fa2c6..c16e8a8 100644 --- a/sysdeps/stub/e_j0l.c +++ b/sysdeps/stub/e_j0l.c @@ -9,3 +9,12 @@ __ieee754_j0l (long double x) } stub_warning (__ieee754_j0l) + +long double +__ieee754_y0l (long double x) +{ + fputs ("__ieee754_y0l not implemented\n", stderr); + return 0.0; +} + +stub_warning (__ieee754_y0l) diff --git a/sysdeps/stub/e_j1l.c b/sysdeps/stub/e_j1l.c index d84e3cd..0a781e5 100644 --- a/sysdeps/stub/e_j1l.c +++ b/sysdeps/stub/e_j1l.c @@ -9,3 +9,12 @@ __ieee754_j1l (long double x) } stub_warning (__ieee754_j1l) + +long double +__ieee754_y1l (long double x) +{ + fputs ("__ieee754_y1l not implemented\n", stderr); + return 0.0; +} + +stub_warning (__ieee754_y1l) diff --git a/sysdeps/stub/e_jnl.c b/sysdeps/stub/e_jnl.c index b9f5900..86ff03b 100644 --- a/sysdeps/stub/e_jnl.c +++ b/sysdeps/stub/e_jnl.c @@ -2,10 +2,19 @@ #include <stdio.h> long double -__ieee754_jnl (long double x) +__ieee754_jnl (int n, long double x) { fputs ("__ieee754_jnl not implemented\n", stderr); return 0.0; } stub_warning (__ieee754_jnl) + +long double +__ieee754_ynl (int n, long double x) +{ + fputs ("__ieee754_ynl not implemented\n", stderr); + return 0.0; +} + +stub_warning (__ieee754_ynl) diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist index db0cd60..0879234 100644 --- a/sysdeps/unix/sysv/linux/Dist +++ b/sysdeps/unix/sysv/linux/Dist @@ -1,6 +1,9 @@ init-first.h sysctl.c net/if.h +net/if_ppp.h +net/ppp-comp.h +net/ppp_defs.h nfs/nfs.h sys/acct.h sys/io.h diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S index a1ef324..71d8053 100644 --- a/sysdeps/unix/sysv/linux/alpha/clone.S +++ b/sysdeps/unix/sysv/linux/alpha/clone.S @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ and invokes a function in the right context after its all over. */ #include <sysdep.h> +#define _ERRNO_H 1 #include <errnos.h> /* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */ diff --git a/sysdeps/unix/sysv/linux/errnos.h b/sysdeps/unix/sysv/linux/errnos.h index 8a7055a..40707d1 100644 --- a/sysdeps/unix/sysv/linux/errnos.h +++ b/sysdeps/unix/sysv/linux/errnos.h @@ -17,6 +17,10 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifdef _ERRNO_H + +#undef EDOM +#undef ERANGE #include <linux/errno.h> #ifndef __ASSEMBLER__ @@ -35,5 +39,14 @@ extern int *__errno_location __P ((void)) __attribute__ ((__const__)); #define __set_errno(val) errno = (val) -#endif -#endif +#endif /* __USE_REENTRANT && (!_LIBC || _LIBC_REENTRANT) */ +#endif /* !__ASSEMBLER */ +#endif /* _ERRNO_H */ + +#if !defined (_ERRNO_H) && defined (__need_Emath) +/* This is ugly but the kernel header is not clean enough. We must + define only the values EDOM and ERANGE in case __need_Emath is + defined. The value is the same for all Linux ports. */ +#define EDOM 33 /* Math argument out of domain of function. */ +#define ERANGE 34 /* Math result not representable. */ +#endif /* !_ERRNO_H && __need_Emath */ diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S index 0afbf87..0742cc5 100644 --- a/sysdeps/unix/sysv/linux/i386/clone.S +++ b/sysdeps/unix/sysv/linux/i386/clone.S @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ and invokes a function in the right context after its all over. */ #include <sysdep.h> +#define _ERRNO_H 1 #include <errnos.h> /* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */ diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S index 64077e0..0728003 100644 --- a/sysdeps/unix/sysv/linux/m68k/clone.S +++ b/sysdeps/unix/sysv/linux/m68k/clone.S @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ and invokes a function in the right context after its all over. */ #include <sysdep.h> +#define _ERRNO_H 1 #include <errnos.h> /* int clone (int (*fn) (), void *child_stack, int flags, int nargs, ...) */ diff --git a/sysdeps/unix/sysv/linux/net/if_ppp.h b/sysdeps/unix/sysv/linux/net/if_ppp.h new file mode 100644 index 0000000..2765254 --- /dev/null +++ b/sysdeps/unix/sysv/linux/net/if_ppp.h @@ -0,0 +1 @@ +#include <linux/if_ppp.h> diff --git a/sysdeps/unix/sysv/linux/net/ppp-comp.h b/sysdeps/unix/sysv/linux/net/ppp-comp.h new file mode 100644 index 0000000..4a992d5 --- /dev/null +++ b/sysdeps/unix/sysv/linux/net/ppp-comp.h @@ -0,0 +1 @@ +#include <linux/ppp-comp.h> diff --git a/sysdeps/unix/sysv/linux/net/ppp_defs.h b/sysdeps/unix/sysv/linux/net/ppp_defs.h new file mode 100644 index 0000000..e51dba7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/net/ppp_defs.h @@ -0,0 +1 @@ +#include <linux/ppp_defs.h> diff --git a/sysdeps/unix/sysv/linux/posix_opt.h b/sysdeps/unix/sysv/linux/posix_opt.h index c1ff431..8a6fad0 100644 --- a/sysdeps/unix/sysv/linux/posix_opt.h +++ b/sysdeps/unix/sysv/linux/posix_opt.h @@ -60,4 +60,7 @@ Boston, MA 02111-1307, USA. */ using the value _POSIX_VDISABLE. */ #define _POSIX_VDISABLE '\0' +/* Filenames are not silently truncated. */ +#define _POSIX_NO_TRUNC 1 + #endif /* posix_opt.h */ diff --git a/sysdeps/unix/sysv/linux/sys/soundcard.h b/sysdeps/unix/sysv/linux/sys/soundcard.h index 098fae1..fade986 100644 --- a/sysdeps/unix/sysv/linux/sys/soundcard.h +++ b/sysdeps/unix/sysv/linux/sys/soundcard.h @@ -1 +1 @@ -#include <linux/soundard.h> +#include <linux/soundcard.h> |