This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26.9000-1117-g1a51e46


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  1a51e46e4a87e1cd9528ac5e5656011636e4086b (commit)
      from  63b52889c35b367cf20896442203bbe5d123058c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1a51e46e4a87e1cd9528ac5e5656011636e4086b

commit 1a51e46e4a87e1cd9528ac5e5656011636e4086b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jan 12 08:18:30 2018 +0100

    support: Preserve errno in write_message, TEST_VERIFY and other checks
    
    These facilities could clobber errno, which makes it difficult to write
    certain checks because a specific order has to be used.

diff --git a/ChangeLog b/ChangeLog
index baba58a..72aaf78 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2018-01-12  Florian Weimer  <fweimer@redhat.com>
 
+	* support/write_message.c (write_message): Preserve errno.
+	* support/check.c (print_failure): Likewise.
+	* support/support_test_verify_impl.c (support_test_verify_impl):
+	Likewise.
+	* support/support_test_compare_failure.c
+	(support_test_compare_failure): Likewise.
+
+2018-01-12  Florian Weimer  <fweimer@redhat.com>
+
 	[BZ #22701]
 	* nis/Makefile (install-lib-ldscripts, $(inst_libdir)/libnsl.so):
 	Prevent installation of libnsl.so.
diff --git a/support/check.c b/support/check.c
index 688ed56..78f2b3c 100644
--- a/support/check.c
+++ b/support/check.c
@@ -18,6 +18,7 @@
 
 #include <support/check.h>
 
+#include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -26,9 +27,11 @@
 static void
 print_failure (const char *file, int line, const char *format, va_list ap)
 {
+  int saved_errno = errno;
   printf ("error: %s:%d: ", file, line);
   vprintf (format, ap);
   puts ("");
+  errno = saved_errno;
 }
 
 int
diff --git a/support/support_test_compare_failure.c b/support/support_test_compare_failure.c
index e5596fd..8eb51c4 100644
--- a/support/support_test_compare_failure.c
+++ b/support/support_test_compare_failure.c
@@ -16,6 +16,7 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <support/check.h>
 
@@ -44,6 +45,7 @@ support_test_compare_failure (const char *file, int line,
                               int right_positive,
                               int right_size)
 {
+  int saved_errno = errno;
   support_record_failure ();
   if (left_size != right_size)
     printf ("%s:%d: numeric comparison failure (widths %d and %d)\n",
@@ -52,4 +54,5 @@ support_test_compare_failure (const char *file, int line,
     printf ("%s:%d: numeric comparison failure\n", file, line);
   report (" left", left_expr, left_value, left_positive, left_size);
   report ("right", right_expr, right_value, right_positive, right_size);
+  errno = saved_errno;
 }
diff --git a/support/support_test_verify_impl.c b/support/support_test_verify_impl.c
index 80311a8..5ff5555 100644
--- a/support/support_test_verify_impl.c
+++ b/support/support_test_verify_impl.c
@@ -18,14 +18,17 @@
 
 #include <support/check.h>
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 
 void
 support_test_verify_impl (const char *file, int line, const char *expr)
 {
+  int saved_errno = errno;
   support_record_failure ();
   printf ("error: %s:%d: not true: %s\n", file, line, expr);
+  errno = saved_errno;
 }
 
 void
diff --git a/support/write_message.c b/support/write_message.c
index 9d0f267..a3e2f90 100644
--- a/support/write_message.c
+++ b/support/write_message.c
@@ -18,12 +18,15 @@
 
 #include <support/support.h>
 
+#include <errno.h>
 #include <string.h>
 #include <unistd.h>
 
 void
 write_message (const char *message)
 {
+  int saved_errno = errno;
   ssize_t unused __attribute__ ((unused));
   unused = write (STDOUT_FILENO, message, strlen (message));
+  errno = saved_errno;
 }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                              |    9 +++++++++
 support/check.c                        |    3 +++
 support/support_test_compare_failure.c |    3 +++
 support/support_test_verify_impl.c     |    3 +++
 support/write_message.c                |    3 +++
 5 files changed, 21 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]