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.19-518-g8747cd0


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  8747cd034a460597a78c4ac616c13e3c981ff1d3 (commit)
      from  d936d379eb1837c35e390b6293f15f75b634db6e (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=8747cd034a460597a78c4ac616c13e3c981ff1d3

commit 8747cd034a460597a78c4ac616c13e3c981ff1d3
Author: Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
Date:   Tue Jun 3 16:39:08 2014 +0530

    Remove redundant nested function b64_from_24bit
    
    Move multiple definitions of the nested function b64_from_24bit into a
    single function __b64_from_24bit.

diff --git a/ChangeLog b/ChangeLog
index ad31181..a8e0501 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2014-06-03  Kostya Serebryany  <konstantin.s.serebryany@gmail.com>
+
+	* crypt/crypt-private.h: Include ufc-crypt.h.
+	(__b64_from_24bit): Declare extern.
+	* crypt/crypt_util.c(__b64_from_24bit): New function.
+	(b64t): New static const variable.
+	* crypt/md5-crypt.c (b64_from_24bit): Remove function.
+	(b64t): Remove variable.
+	(__md5_crypt_r): Replace b64_from_24bit with __b64_from_24bit.
+	* crypt/sha256-crypt.c: Include crypt-private.h.
+	(b64t): Remove variable.
+	(__sha256_crypt_r): Remove b64_from_24bit and replace
+	with __b64_from_24bit.
+	* crypt/sha512-crypt.c: Likewise.
+
 2014-06-02  Roland McGrath  <roland@hack.frob.com>
 
 	* nptl/sysdeps/unix/sysv/linux/sh/vfork.S: Moved ...
diff --git a/crypt/crypt-private.h b/crypt/crypt-private.h
index fbaf9c4..ea46a7f 100644
--- a/crypt/crypt-private.h
+++ b/crypt/crypt-private.h
@@ -28,6 +28,9 @@
 #include <features.h>
 #include <stdbool.h>
 
+#include "ufc-crypt.h"
+#include "crypt.h"
+
 /* crypt.c */
 extern void _ufc_doit_r (ufc_long itr, struct crypt_data * __restrict __data,
 			 ufc_long *res);
@@ -57,4 +60,8 @@ extern char *__crypt_r (const char *__key, const char *__salt,
 			     struct crypt_data * __restrict __data);
 extern char *fcrypt (const char *key, const char *salt);
 
+extern void __b64_from_24bit (char **cp, int *buflen,
+			      unsigned int b2, unsigned int b1, unsigned int b0,
+			      int n);
+
 #endif  /* crypt-private.h */
diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
index 2875931..9381d67 100644
--- a/crypt/crypt_util.c
+++ b/crypt/crypt_util.c
@@ -253,6 +253,10 @@ static ufc_long eperm32tab[4][256][2];
  */
 static ufc_long efp[16][64][2];
 
+/* Table with characters for base64 transformation.  */
+static const char b64t[64] =
+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
 /*
  * For use by the old, non-reentrant routines
  * (crypt/encrypt/setkey)
@@ -956,3 +960,17 @@ setkey(__key)
 {
   __setkey_r(__key, &_ufc_foobar);
 }
+
+void
+__b64_from_24bit (char **cp, int *buflen,
+		  unsigned int b2, unsigned int b1, unsigned int b0,
+		  int n)
+{
+  unsigned int w = (b2 << 16) | (b1 << 8) | b0;
+  while (n-- > 0 && (*buflen) > 0)
+    {
+      *(*cp)++ = b64t[w & 0x3f];
+      --(*buflen);
+      w >>= 6;
+    }
+}
diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c
index f6739d3..0aa4f7e 100644
--- a/crypt/md5-crypt.c
+++ b/crypt/md5-crypt.c
@@ -25,6 +25,7 @@
 #include <sys/param.h>
 
 #include "md5.h"
+#include "crypt-private.h"
 
 
 #ifdef USE_NSS
@@ -78,30 +79,12 @@ typedef int PRBool;
    encryption implementations.  */
 static const char md5_salt_prefix[] = "$1$";
 
-/* Table with characters for base64 transformation.  */
-static const char b64t[64] =
-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
 
 /* Prototypes for local functions.  */
 extern char *__md5_crypt_r (const char *key, const char *salt,
 			    char *buffer, int buflen);
 extern char *__md5_crypt (const char *key, const char *salt);
 
-static void
-b64_from_24bit (char **cp, int *buflen,
-		unsigned int b2, unsigned int b1, unsigned int b0,
-		int n)
-{
-  unsigned int w = (b2 << 16) | (b1 << 8) | b0;
-  while (n-- > 0 && *buflen > 0)
-    {
-      *(*cp)++ = b64t[w & 0x3f];
-      --*buflen;
-      w >>= 6;
-    }
-}
-
 
 /* This entry point is equivalent to the `crypt' function in Unix
    libcs.  */
@@ -282,18 +265,18 @@ __md5_crypt_r (key, salt, buffer, buflen)
       --buflen;
     }
 
-  b64_from_24bit (&cp, &buflen,
-		  alt_result[0], alt_result[6], alt_result[12], 4);
-  b64_from_24bit (&cp, &buflen,
-		  alt_result[1], alt_result[7], alt_result[13], 4);
-  b64_from_24bit (&cp, &buflen,
-		  alt_result[2], alt_result[8], alt_result[14], 4);
-  b64_from_24bit (&cp, &buflen,
-		  alt_result[3], alt_result[9], alt_result[15], 4);
-  b64_from_24bit (&cp, &buflen,
-		  alt_result[4], alt_result[10], alt_result[5], 4);
-  b64_from_24bit (&cp, &buflen,
-		  0, 0, alt_result[11], 2);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[0], alt_result[6], alt_result[12], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[1], alt_result[7], alt_result[13], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[2], alt_result[8], alt_result[14], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[3], alt_result[9], alt_result[15], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[4], alt_result[10], alt_result[5], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    0, 0, alt_result[11], 2);
   if (buflen <= 0)
     {
       __set_errno (ERANGE);
diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
index cf0abd2..6f6a722 100644
--- a/crypt/sha256-crypt.c
+++ b/crypt/sha256-crypt.c
@@ -26,6 +26,7 @@
 #include <sys/param.h>
 
 #include "sha256.h"
+#include "crypt-private.h"
 
 
 #ifdef USE_NSS
@@ -90,10 +91,6 @@ static const char sha256_rounds_prefix[] = "rounds=";
 /* Maximum number of rounds.  */
 #define ROUNDS_MAX 999999999
 
-/* Table with characters for base64 transformation.  */
-static const char b64t[64] =
-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
 
 /* Prototypes for local functions.  */
 extern char *__sha256_crypt_r (const char *key, const char *salt,
@@ -341,29 +338,28 @@ __sha256_crypt_r (key, salt, buffer, buflen)
       --buflen;
     }
 
-  void b64_from_24bit (unsigned int b2, unsigned int b1, unsigned int b0,
-		       int n)
-  {
-    unsigned int w = (b2 << 16) | (b1 << 8) | b0;
-    while (n-- > 0 && buflen > 0)
-      {
-	*cp++ = b64t[w & 0x3f];
-	--buflen;
-	w >>= 6;
-      }
-  }
-
-  b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
-  b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
-  b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
-  b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
-  b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
-  b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
-  b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
-  b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
-  b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
-  b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
-  b64_from_24bit (0, alt_result[31], alt_result[30], 3);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[0], alt_result[10], alt_result[20], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[21], alt_result[1], alt_result[11], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[12], alt_result[22], alt_result[2], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[3], alt_result[13], alt_result[23], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[24], alt_result[4], alt_result[14], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[15], alt_result[25], alt_result[5], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[6], alt_result[16], alt_result[26], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[27], alt_result[7], alt_result[17], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[18], alt_result[28], alt_result[8], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[9], alt_result[19], alt_result[29], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    0, alt_result[31], alt_result[30], 3);
   if (buflen <= 0)
     {
       __set_errno (ERANGE);
diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
index c0338a7..5e323ea 100644
--- a/crypt/sha512-crypt.c
+++ b/crypt/sha512-crypt.c
@@ -26,6 +26,7 @@
 #include <sys/param.h>
 
 #include "sha512.h"
+#include "crypt-private.h"
 
 
 #ifdef USE_NSS
@@ -90,10 +91,6 @@ static const char sha512_rounds_prefix[] = "rounds=";
 /* Maximum number of rounds.  */
 #define ROUNDS_MAX 999999999
 
-/* Table with characters for base64 transformation.  */
-static const char b64t[64] =
-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
 
 /* Prototypes for local functions.  */
 extern char *__sha512_crypt_r (const char *key, const char *salt,
@@ -340,40 +337,50 @@ __sha512_crypt_r (key, salt, buffer, buflen)
       --buflen;
     }
 
-  void b64_from_24bit (unsigned int b2, unsigned int b1, unsigned int b0,
-		       int n)
-  {
-    unsigned int w = (b2 << 16) | (b1 << 8) | b0;
-    while (n-- > 0 && buflen > 0)
-      {
-	*cp++ = b64t[w & 0x3f];
-	--buflen;
-	w >>= 6;
-      }
-  }
-
-  b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4);
-  b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4);
-  b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4);
-  b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4);
-  b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4);
-  b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4);
-  b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4);
-  b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4);
-  b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4);
-  b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4);
-  b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4);
-  b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4);
-  b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4);
-  b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4);
-  b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4);
-  b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4);
-  b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4);
-  b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4);
-  b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4);
-  b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4);
-  b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4);
-  b64_from_24bit (0, 0, alt_result[63], 2);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[0], alt_result[21], alt_result[42], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[22], alt_result[43], alt_result[1], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[44], alt_result[2], alt_result[23], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[3], alt_result[24], alt_result[45], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[25], alt_result[46], alt_result[4], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[47], alt_result[5], alt_result[26], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[6], alt_result[27], alt_result[48], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[28], alt_result[49], alt_result[7], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[50], alt_result[8], alt_result[29], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[9], alt_result[30], alt_result[51], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[31], alt_result[52], alt_result[10], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[53], alt_result[11], alt_result[32], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[12], alt_result[33], alt_result[54], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[34], alt_result[55], alt_result[13], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[56], alt_result[14], alt_result[35], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[15], alt_result[36], alt_result[57], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[37], alt_result[58], alt_result[16], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[59], alt_result[17], alt_result[38], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[18], alt_result[39], alt_result[60], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[40], alt_result[61], alt_result[19], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    alt_result[62], alt_result[20], alt_result[41], 4);
+  __b64_from_24bit (&cp, &buflen,
+		    0, 0, alt_result[63], 2);
 
   if (buflen <= 0)
     {

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

Summary of changes:
 ChangeLog             |   15 +++++++++
 crypt/crypt-private.h |    7 ++++
 crypt/crypt_util.c    |   18 ++++++++++
 crypt/md5-crypt.c     |   43 ++++++++-----------------
 crypt/sha256-crypt.c  |   50 +++++++++++++----------------
 crypt/sha512-crypt.c  |   83 ++++++++++++++++++++++++++----------------------
 6 files changed, 121 insertions(+), 95 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]