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.24-380-g61158ff


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  61158ffa9a17476d88aaf4a833d13b12f1c51387 (commit)
      from  7773556dfb2bf62f7b6deda66fa3821a3bcdbf3e (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=61158ffa9a17476d88aaf4a833d13b12f1c51387

commit 61158ffa9a17476d88aaf4a833d13b12f1c51387
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Nov 16 22:46:48 2016 +0000

    Fix crypt snprintf namespace (bug 20829).
    
    Extending linknamespace tests to cover libcrypt showed that crypt
    brings in references to snprintf, but is in XPG3 and XPG4 which don't
    have snprintf.  This patch fixes it to use __snprintf instead,
    exporting __snprintf from libc.so at version GLIBC_PRIVATE and adding
    libc_hidden_proto / libc_hidden_def accordingly.
    
    Tested for x86_64 and x86, in conjunction with the testsuite changes
    to enable linknamespace testing for libdl and libcrypt.  Also tested
    (compilation only) for powerpc to make sure there were no problem
    interactions with the optional-long-double handling for snprintf.
    
    	[BZ #20829]
    	* stdio-common/Versions (__snprintf): Add to version
    	GLIBC_PRIVATE.
    	* include/stdio.h (__snprintf): Use libc_hidden_proto.
    	* stdio-common/snprintf.c (__snprintf): Use libc_hidden_def.
    	* crypt/sha256-crypt.c (__sha256_crypt_r): Use __snprintf instead
    	of snprintf.
    	* crypt/sha512-crypt.c (__sha512_crypt_r): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 25e1da1..49e0ae7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-11-16  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #20829]
+	* stdio-common/Versions (__snprintf): Add to version
+	GLIBC_PRIVATE.
+	* include/stdio.h (__snprintf): Use libc_hidden_proto.
+	* stdio-common/snprintf.c (__snprintf): Use libc_hidden_def.
+	* crypt/sha256-crypt.c (__sha256_crypt_r): Use __snprintf instead
+	of snprintf.
+	* crypt/sha512-crypt.c (__sha512_crypt_r): Likewise.
+
 2016-11-16  Zack Weinberg  <zackw@panix.com>
 
 	* string/string.h: Remove obsolete comment stating that
diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
index ca703de..d768234 100644
--- a/crypt/sha256-crypt.c
+++ b/crypt/sha256-crypt.c
@@ -319,8 +319,8 @@ __sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
 
   if (rounds_custom)
     {
-      int n = snprintf (cp, MAX (0, buflen), "%s%zu$",
-			sha256_rounds_prefix, rounds);
+      int n = __snprintf (cp, MAX (0, buflen), "%s%zu$",
+			  sha256_rounds_prefix, rounds);
       cp += n;
       buflen -= n;
     }
diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
index c42e5b7..f404c88 100644
--- a/crypt/sha512-crypt.c
+++ b/crypt/sha512-crypt.c
@@ -318,8 +318,8 @@ __sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
 
   if (rounds_custom)
     {
-      int n = snprintf (cp, MAX (0, buflen), "%s%zu$",
-			sha512_rounds_prefix, rounds);
+      int n = __snprintf (cp, MAX (0, buflen), "%s%zu$",
+			  sha512_rounds_prefix, rounds);
       cp += n;
       buflen -= n;
     }
diff --git a/include/stdio.h b/include/stdio.h
index 1ffbc40..30e737e 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -11,6 +11,7 @@ extern int __fcloseall (void);
 extern int __snprintf (char *__restrict __s, size_t __maxlen,
 		       const char *__restrict __format, ...)
      __attribute__ ((__format__ (__printf__, 3, 4)));
+libc_hidden_proto (__snprintf)
 extern int __vsnprintf (char *__restrict __s, size_t __maxlen,
 			const char *__restrict __format, _G_va_list __arg)
      __attribute__ ((__format__ (__printf__, 3, 0)));
diff --git a/stdio-common/Versions b/stdio-common/Versions
index 06b96f6..5016f69 100644
--- a/stdio-common/Versions
+++ b/stdio-common/Versions
@@ -60,5 +60,7 @@ libc {
   GLIBC_PRIVATE {
     # global variables
     _itoa_lower_digits;
+    # Used in libcrypt.
+    __snprintf;
   }
 }
diff --git a/stdio-common/snprintf.c b/stdio-common/snprintf.c
index a3cc518..ce7ce06 100644
--- a/stdio-common/snprintf.c
+++ b/stdio-common/snprintf.c
@@ -35,4 +35,5 @@ __snprintf (char *s, size_t maxlen, const char *format, ...)
 
   return done;
 }
+libc_hidden_def (__snprintf)
 ldbl_weak_alias (__snprintf, snprintf)

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

Summary of changes:
 ChangeLog               |   11 +++++++++++
 crypt/sha256-crypt.c    |    4 ++--
 crypt/sha512-crypt.c    |    4 ++--
 include/stdio.h         |    1 +
 stdio-common/Versions   |    2 ++
 stdio-common/snprintf.c |    1 +
 6 files changed, 19 insertions(+), 4 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]