This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26.9000-1117-g1a51e46
- From: fw at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 12 Jan 2018 12:35:24 -0000
- Subject: 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