diff options
| author | Jakub Jelinek <jakub@redhat.com> | 2005-01-06 22:18:46 +0000 |
|---|---|---|
| committer | Jakub Jelinek <jakub@redhat.com> | 2005-01-06 22:18:46 +0000 |
| commit | e7cbcee4982d8caa809a91c9cfef5fda67445f0a (patch) | |
| tree | f3bd1fe9ebe4f9bc6e776d531cd1d8852a7b5bae | |
| parent | f19db0eaff4a01856f67d58e2a07dbf63f8d132f (diff) | |
| download | glibc-e7cbcee4982d8caa809a91c9cfef5fda67445f0a.tar.xz glibc-e7cbcee4982d8caa809a91c9cfef5fda67445f0a.zip | |
Updated to fedora-glibc-20050106T2203cvs/fedora-glibc-2_3_4-5
| -rw-r--r-- | ChangeLog | 12 | ||||
| -rw-r--r-- | WUR-REPORT | 45 | ||||
| -rw-r--r-- | fedora/branch.mk | 4 | ||||
| -rw-r--r-- | fedora/glibc.spec.in | 14 | ||||
| -rw-r--r-- | libio/stdio.h | 49 | ||||
| -rw-r--r-- | misc/sys/cdefs.h | 8 | ||||
| -rw-r--r-- | posix/regex_internal.c | 1 | ||||
| -rw-r--r-- | posix/unistd.h | 116 | ||||
| -rw-r--r-- | stdlib/stdlib.h | 138 |
9 files changed, 238 insertions, 149 deletions
@@ -1,3 +1,7 @@ +2005-01-06 Ulrich Drepper <drepper@redhat.com> + + * posix/unistd.h: Declare ftruncate for POSIX 2003. [BZ #640] + 2004-12-22 Steven Munroe <sjmunroe@us.ibm.com> * math/libm-test.inc (rint_test_tonearest): New test. @@ -46,6 +50,13 @@ alignment. Fix -0.0 case. Remove redundant const values. Use float const. +2005-01-06 Ulrich Drepper <drepper@redhat.com> + + * misc/sys/cdefs.h: Define __wur. + * libio/stdio.h: Use __wur for a number of interfaces. + * posix/unistd.h: Likewise. + * stdlib/stdlib.h: Likewise. + 2004-12-29 Jakub Jelinek <jakub@redhat.com> * sysdeps/ia64/fpu/libm_support.h (__libm_error_support): Use @@ -390,6 +401,7 @@ (transit_state): Expect state->trtable to be a 256-item transition table. Reorganize code to have less tests in the common case, and to save an indentation level. + * posix/regex_internal.c (free_state): Free word_trtable. 2004-12-21 Jakub Jelinek <jakub@redhat.com> diff --git a/WUR-REPORT b/WUR-REPORT new file mode 100644 index 0000000000..52c4a812d9 --- /dev/null +++ b/WUR-REPORT @@ -0,0 +1,45 @@ +<unistd.h>: + +lssek: Probably should be __wur but lseek(fd,SEEK_SET,0) will succeed if + the descriptor is fine. +lseek64: same + +setuid: will always succeed given correct privileges, so there might + be places which don't check for it. +setreuid: same +seteuid: same +setgid: same +setregid: same +setegid: same +setresuid: same +setresgid: same + + +<stdio.h>: + +setvbuf: if stream and buffer are fine and other parameters constant, + it cannot really fail. +fseek: see lseek +fseeko: likewise +fgetpos: similarly +fsetpos: likewise + + +<stdlib.h>: + +atext: it is guaranteed that a certain number of handlers can be + registered, so some calls might need not be checked +on_exit: same +random functions: one might want to discard a number of results. In any + case, no security problem + + +putenv: probably SHOULD be marked, but we'll wait a bit. +setenv: likewise +unsetenv: likewise +clearenv: likewise + +mbstowcs: probably SHOULD be marked +wcstombs: likewise + +ptsname_r: probably SHOULD be marked diff --git a/fedora/branch.mk b/fedora/branch.mk index da12880aec..4c1e1f0f5c 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -1,5 +1,5 @@ # This file is updated automatically by Makefile. glibc-branch := fedora glibc-base := HEAD -fedora-sync-date := 2005-01-06 14:43 UTC -fedora-sync-tag := fedora-glibc-20050106T1443 +fedora-sync-date := 2005-01-06 22:03 UTC +fedora-sync-tag := fedora-glibc-20050106T2203 diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index 4c7dc698c3..d063010b1f 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -1,4 +1,4 @@ -%define glibcrelease 4 +%define glibcrelease 5 %define auxarches i586 i686 athlon sparcv9 alphaev6 %define prelinkarches noarch %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64 @@ -1057,11 +1057,11 @@ for f in `find $RPM_BUILD_ROOT/%{_lib} -type l`; do done echo Sorting source file lists. Might take a while... -xargs -0 -n 1 echo < $sf | LANG=C sort -u > $sf.sorted -xargs -0 -n 1 echo < $csf | LANG=C sort -u > $csf.sorted +xargs -0 -n 1 echo < $sf | LC_ALL=C grep -v '/<internal>$' | LC_ALL=C sort -u > $sf.sorted +xargs -0 -n 1 echo < $csf | LC_ALL=C grep -v '/<internal>$' | LC_ALL=C sort -u > $csf.sorted mkdir -p $RPM_BUILD_ROOT/usr/src/debug cat $sf.sorted $csf.sorted \ - | (cd $RPM_BUILD_DIR; LANG=C sort -u | cpio -pdm ${RPM_BUILD_ROOT}/usr/src/debug) + | (cd $RPM_BUILD_DIR; LC_ALL=C sort -u | cpio -pdm ${RPM_BUILD_ROOT}/usr/src/debug) # stupid cpio creates new directories in mode 0700, fixup find $RPM_BUILD_ROOT/usr/src/debug -type d -print | xargs chmod a+rx @@ -1270,6 +1270,12 @@ rm -f *.filelist* %endif %changelog +* Thu Jan 6 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-5 +- update from CVS + - add some warn_unused_result marking + - make ftruncate available even for just -D_POSIX_C_SOURCE=200112L + (BZ#640) + * Thu Jan 6 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-4 - update from CVS - fix IA-32 stack alignment for LinuxThreads thread functions diff --git a/libio/stdio.h b/libio/stdio.h index 941a2afc74..9b529dd839 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -1,5 +1,5 @@ /* Define ISO C stdio on top of C++ iostreams. - Copyright (C) 1991,1994-2002,2003,2004 Free Software Foundation, Inc. + Copyright (C) 1991,1994-2004, 2005 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 @@ -151,9 +151,9 @@ extern struct _IO_FILE *stderr; /* Standard error output stream. */ __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ -extern int remove (__const char *__filename) __THROW; +extern int remove (__const char *__filename) __THROW __wur; /* Rename file OLD to NEW. */ -extern int rename (__const char *__old, __const char *__new) __THROW; +extern int rename (__const char *__old, __const char *__new) __THROW __wur; __END_NAMESPACE_STD @@ -393,15 +393,15 @@ __BEGIN_NAMESPACE_STD This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fscanf (FILE *__restrict __stream, - __const char *__restrict __format, ...); + __const char *__restrict __format, ...) __wur; /* Read formatted input from stdin. This function is a possible cancellation point and therefore not marked with __THROW. */ -extern int scanf (__const char *__restrict __format, ...); +extern int scanf (__const char *__restrict __format, ...) __wur; /* Read formatted input from S. */ extern int sscanf (__const char *__restrict __s, - __const char *__restrict __format, ...) __THROW; + __const char *__restrict __format, ...) __THROW __wur; __END_NAMESPACE_STD #ifdef __USE_ISOC99 @@ -412,19 +412,19 @@ __BEGIN_NAMESPACE_C99 marked with __THROW. */ extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, _G_va_list __arg) - __attribute__ ((__format__ (__scanf__, 2, 0))); + __attribute__ ((__format__ (__scanf__, 2, 0))) __wur; /* Read formatted input from stdin into argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vscanf (__const char *__restrict __format, _G_va_list __arg) - __attribute__ ((__format__ (__scanf__, 1, 0))); + __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; /* Read formatted input from S into argument list ARG. */ extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, _G_va_list __arg) - __THROW __attribute__ ((__format__ (__scanf__, 2, 0))); + __THROW __attribute__ ((__format__ (__scanf__, 2, 0))) __wur; __END_NAMESPACE_C99 #endif /* Use ISO C9x. */ @@ -525,14 +525,15 @@ __BEGIN_NAMESPACE_STD This function is a possible cancellation point and therefore not marked with __THROW. */ -extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __wur; /* Get a newline-terminated string from stdin, removing the newline. DO NOT USE THIS FUNCTION!! There is no limit on how much it will read. This function is a possible cancellation point and therefore not marked with __THROW. */ -extern char *gets (char *__s); +extern char *gets (char *__s) __wur; __END_NAMESPACE_STD #ifdef __USE_GNU @@ -543,7 +544,7 @@ __END_NAMESPACE_STD or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern char *fgets_unlocked (char *__restrict __s, int __n, - FILE *__restrict __stream); + FILE *__restrict __stream) __wur; #endif @@ -560,10 +561,10 @@ extern char *fgets_unlocked (char *__restrict __s, int __n, therefore not marked with __THROW. */ extern _IO_ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, - FILE *__restrict __stream); + FILE *__restrict __stream) __wur; extern _IO_ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, - FILE *__restrict __stream); + FILE *__restrict __stream) __wur; /* Like `getdelim', but reads up to a newline. @@ -573,7 +574,7 @@ extern _IO_ssize_t getdelim (char **__restrict __lineptr, therefore not marked with __THROW. */ extern _IO_ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, - FILE *__restrict __stream); + FILE *__restrict __stream) __wur; #endif @@ -595,7 +596,7 @@ extern int puts (__const char *__s); This function is a possible cancellation points and therefore not marked with __THROW. */ -extern int ungetc (int __c, FILE *__stream); +extern int ungetc (int __c, FILE *__stream) __wur; /* Read chunks of generic data from STREAM. @@ -603,13 +604,13 @@ extern int ungetc (int __c, FILE *__stream); This function is a possible cancellation points and therefore not marked with __THROW. */ extern size_t fread (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream); + size_t __n, FILE *__restrict __stream) __wur; /* Write chunks of generic data to STREAM. This function is a possible cancellation points and therefore not marked with __THROW. */ extern size_t fwrite (__const void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __s); + size_t __n, FILE *__restrict __s) __wur; __END_NAMESPACE_STD #ifdef __USE_GNU @@ -631,9 +632,9 @@ extern int fputs_unlocked (__const char *__restrict __s, or due to the implementation they are cancellation points and therefore not marked with __THROW. */ extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream); + size_t __n, FILE *__restrict __stream) __wur; extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, - size_t __n, FILE *__restrict __stream); + size_t __n, FILE *__restrict __stream) __wur; #endif @@ -647,7 +648,7 @@ extern int fseek (FILE *__stream, long int __off, int __whence); This function is a possible cancellation point and therefore not marked with __THROW. */ -extern long int ftell (FILE *__stream); +extern long int ftell (FILE *__stream) __wur; /* Rewind to the beginning of STREAM. This function is a possible cancellation point and therefore not @@ -671,7 +672,7 @@ extern int fseeko (FILE *__stream, __off_t __off, int __whence); This function is a possible cancellation point and therefore not marked with __THROW. */ -extern __off_t ftello (FILE *__stream); +extern __off_t ftello (FILE *__stream) __wur; # else # ifdef __REDIRECT extern int __REDIRECT (fseeko, @@ -712,7 +713,7 @@ __END_NAMESPACE_STD #ifdef __USE_LARGEFILE64 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); -extern __off64_t ftello64 (FILE *__stream); +extern __off64_t ftello64 (FILE *__stream) __wur; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); #endif @@ -810,7 +811,7 @@ extern void flockfile (FILE *__stream) __THROW; /* Try to acquire ownership of STREAM but do not block if it is not possible. */ -extern int ftrylockfile (FILE *__stream) __THROW; +extern int ftrylockfile (FILE *__stream) __THROW __wur; /* Relinquish the ownership granted for STREAM. */ extern void funlockfile (FILE *__stream) __THROW; diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index 475cf62961..6ac21013cc 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -255,6 +255,14 @@ # define __nonnull(params) #endif +/* If fortification mode, we warn about unused results of certain + function calls which can lead to problems. */ +#if __GNUC_PREREQ (3,4) && __USE_FORTIFY_LEVEL > 0 +# define __wur __attribute__ ((__warn_unused_result__)) +#else +# define __wur /* Ignore */ +#endif + /* It is possible to compile containing GCC extensions even if GCC is run in pedantic mode if the uses are carefully marked using the `__extension__' keyword. But this is not generally available before diff --git a/posix/regex_internal.c b/posix/regex_internal.c index 001b50b134..f15cb575eb 100644 --- a/posix/regex_internal.c +++ b/posix/regex_internal.c @@ -1668,6 +1668,7 @@ free_state (state) re_free (state->entrance_nodes); } re_node_set_free (&state->nodes); + re_free (state->word_trtable); re_free (state->trtable); re_free (state); } diff --git a/posix/unistd.h b/posix/unistd.h index 5d42169e82..06c8ca7c21 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1991-2003, 2004, 2005 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 @@ -295,7 +295,8 @@ extern __off64_t __REDIRECT_NTH (lseek, # endif #endif #ifdef __USE_LARGEFILE64 -extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) __THROW; +extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) + __THROW; #endif /* Close the file descriptor FD. @@ -309,13 +310,13 @@ extern int close (int __fd); This function is a cancellation point and therefore not marked with __THROW. */ -extern ssize_t read (int __fd, void *__buf, size_t __nbytes); +extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur; /* Write N bytes of BUF to FD. Return the number written, or -1. This function is a cancellation point and therefore not marked with __THROW. */ -extern ssize_t write (int __fd, __const void *__buf, size_t __n); +extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur; #ifdef __USE_UNIX98 # ifndef __USE_FILE_OFFSET64 @@ -326,7 +327,7 @@ extern ssize_t write (int __fd, __const void *__buf, size_t __n); This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, - __off_t __offset); + __off_t __offset) __wur; /* Write N bytes of BUF to FD at the given position OFFSET without changing the file pointer. Return the number written, or -1. @@ -334,15 +335,15 @@ extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, - __off_t __offset); + __off_t __offset) __wur; # else # ifdef __REDIRECT extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, __off64_t __offset), - pread64); + pread64) __wur; extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, size_t __nbytes, __off64_t __offset), - pwrite64); + pwrite64) __wur; # else # define pread pread64 # define pwrite pwrite64 @@ -354,11 +355,11 @@ extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf, changing the file pointer. Return the number read, -1 for errors or 0 for EOF. */ extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, - __off64_t __offset); + __off64_t __offset) __wur; /* Write N bytes of BUF to FD at the given position OFFSET without changing the file pointer. Return the number written, or -1. */ extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, - __off64_t __offset); + __off64_t __offset) __wur; # endif #endif @@ -366,7 +367,7 @@ extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, If successful, two file descriptors are stored in PIPEDES; bytes written on PIPEDES[1] can be read from PIPEDES[0]. Returns 0 if successful, -1 if not. */ -extern int pipe (int __pipedes[2]) __THROW; +extern int pipe (int __pipedes[2]) __THROW __wur; /* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM. If SECONDS is zero, any currently scheduled alarm will be cancelled. @@ -416,26 +417,26 @@ extern int pause (void); /* Change the owner and group of FILE. */ extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) - __THROW __nonnull ((1)); + __THROW __nonnull ((1)) __wur; #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Change the owner and group of the file that FD is open on. */ -extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW; +extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur; /* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic link is changed. */ extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) - __THROW __nonnull ((1)); + __THROW __nonnull ((1)) __wur; #endif /* Use BSD || X/Open Unix. */ /* Change the process's working directory to PATH. */ -extern int chdir (__const char *__path) __THROW __nonnull ((1)); +extern int chdir (__const char *__path) __THROW __nonnull ((1)) __wur; #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Change the process's working directory to the one FD is open on. */ -extern int fchdir (int __fd) __THROW; +extern int fchdir (int __fd) __THROW __wur; #endif /* Get the pathname of the current working directory, @@ -445,7 +446,7 @@ extern int fchdir (int __fd) __THROW; an array is allocated with `malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ -extern char *getcwd (char *__buf, size_t __size) __THROW; +extern char *getcwd (char *__buf, size_t __size) __THROW __wur; #ifdef __USE_GNU /* Return a malloc'd string containing the current directory name. @@ -458,15 +459,16 @@ extern char *get_current_dir_name (void) __THROW; /* Put the absolute pathname of the current working directory in BUF. If successful, return BUF. If not, put an error message in BUF and return NULL. BUF should be at least PATH_MAX bytes long. */ -extern char *getwd (char *__buf) __THROW __nonnull ((1)); +extern char *getwd (char *__buf) + __THROW __nonnull ((1)) __attribute_deprecated__ __wur; #endif /* Duplicate FD, returning a new file descriptor on the same file. */ -extern int dup (int __fd) __THROW; +extern int dup (int __fd) __THROW __wur; /* Duplicate FD to FD2, closing FD2 and making it open on the same file. */ -extern int dup2 (int __fd, int __fd2) __THROW; +extern int dup2 (int __fd, int __fd2) __THROW __wur; /* NULL-terminated array of "NAME=VALUE" environment variables. */ extern char **__environ; @@ -516,7 +518,7 @@ extern int execlp (__const char *__file, __const char *__arg, ...) #if defined __USE_MISC || defined __USE_XOPEN /* Add INC to priority of the current process. */ -extern int nice (int __inc) __THROW; +extern int nice (int __inc) __THROW __wur; #endif @@ -629,7 +631,7 @@ extern __gid_t getegid (void) __THROW; /* If SIZE is zero, return the number of supplementary groups the calling process is in. Otherwise, fill in the group IDs of its supplementary groups in LIST and return the number written. */ -extern int getgroups (int __size, __gid_t __list[]) __THROW; +extern int getgroups (int __size, __gid_t __list[]) __THROW __wur; #ifdef __USE_GNU /* Return nonzero iff the calling process is in group GID. */ @@ -673,19 +675,23 @@ extern int setegid (__gid_t __gid) __THROW; #ifdef __USE_GNU /* Fetch the effective user ID, real user ID, and saved-set user ID, of the calling process. */ -extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); +extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid) + __THROW; /* Fetch the effective group ID, real group ID, and saved-set group ID, of the calling process. */ -extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); +extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid) + __THROW; /* Set the effective user ID, real user ID, and saved-set user ID, of the calling process to EUID, RUID, and SUID, respectively. */ -extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); +extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid) + __THROW; /* Set the effective group ID, real group ID, and saved-set group ID, of the calling process to EGID, RGID, and SGID, respectively. */ -extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); +extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid) + __THROW; #endif @@ -710,7 +716,7 @@ extern char *ttyname (int __fd) __THROW; /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ extern int ttyname_r (int __fd, char *__buf, size_t __buflen) - __THROW __nonnull ((2)); + __THROW __nonnull ((2)) __wur; /* Return 1 if FD is a valid descriptor associated with a terminal, zero if not. */ @@ -726,18 +732,18 @@ extern int ttyslot (void) __THROW; /* Make a link to FROM named TO. */ extern int link (__const char *__from, __const char *__to) - __THROW __nonnull ((1, 2)); + __THROW __nonnull ((1, 2)) __wur; #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED /* Make a symbolic link to FR |
