about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--WUR-REPORT25
-rw-r--r--misc/sys/cdefs.h8
-rw-r--r--posix/regex_internal.c1
4 files changed, 41 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e251cc7e2f..5c62032f90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
 2004-12-29  Jakub Jelinek  <jakub@redhat.com>
 
 	* sysdeps/ia64/fpu/libm_support.h (__libm_error_support): Use
@@ -342,6 +348,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..a8b28607d5
--- /dev/null
+++ b/WUR-REPORT
@@ -0,0 +1,25 @@
+<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
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);
 }