summaryrefslogtreecommitdiff
path: root/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch')
-rw-r--r--patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch207
1 files changed, 0 insertions, 207 deletions
diff --git a/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch b/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch
deleted file mode 100644
index bc3289c..0000000
--- a/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch
+++ /dev/null
@@ -1,207 +0,0 @@
---- glibc-2.1.3/md5-crypt/md5-crypt.c 2000/03/04 00:47:30 1.1
-+++ glibc-2.1.3/md5-crypt/md5-crypt.c 2000/08/24 06:10:02 1.8
-@@ -1,5 +1,5 @@
- /* One way encryption based on MD5 sum.
-- Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
-+ Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-@@ -18,6 +18,7 @@
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-+#include <assert.h>
- #include <errno.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -37,9 +38,9 @@
-
-
- /* Prototypes for local functions. */
--extern char *__md5_crypt_r __P ((const char *key, const char *salt,
-- char *buffer, int buflen));
--extern char *__md5_crypt __P ((const char *key, const char *salt));
-+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);
-
-
- /* This entry point is equivalent to the `crypt' function in Unix
-@@ -51,13 +52,16 @@
- char *buffer;
- int buflen;
- {
-- unsigned char alt_result[16];
-+ unsigned char alt_result[16]
-+ __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
- struct md5_ctx ctx;
- struct md5_ctx alt_ctx;
- size_t salt_len;
- size_t key_len;
- size_t cnt;
- char *cp;
-+ char *copied_key = NULL;
-+ char *copied_salt = NULL;
-
- /* Find beginning of salt string. The prefix should normally always
- be present. Just in case it is not. */
-@@ -68,6 +72,26 @@
- salt_len = MIN (strcspn (salt, "$"), 8);
- key_len = strlen (key);
-
-+ if ((key - (char *) 0) % __alignof__ (md5_uint32) != 0)
-+ {
-+ char *tmp = (char *) alloca (key_len + __alignof__ (md5_uint32));
-+ key = copied_key =
-+ memcpy (tmp + __alignof__ (md5_uint32)
-+ - (tmp - (char *) 0) % __alignof__ (md5_uint32),
-+ key, key_len);
-+ assert ((key - (char *) 0) % __alignof__ (md5_uint32) == 0);
-+ }
-+
-+ if ((salt - (char *) 0) % __alignof__ (md5_uint32) != 0)
-+ {
-+ char *tmp = (char *) alloca (salt_len + __alignof__ (md5_uint32));
-+ salt = copied_salt =
-+ memcpy (tmp + __alignof__ (md5_uint32)
-+ - (tmp - (char *) 0) % __alignof__ (md5_uint32),
-+ salt, salt_len);
-+ assert ((salt - (char *) 0) % __alignof__ (md5_uint32) == 0);
-+ }
-+
- /* Prepare for the real work. */
- __md5_init_ctx (&ctx);
-
-@@ -195,21 +219,30 @@
-
- /* Clear the buffer for the intermediate result so that people
- attaching to processes or reading core dumps cannot get any
-- information. */
-- memset (alt_result, '\0', sizeof (alt_result));
-+ information. We do it in this way to clear correct_words[]
-+ inside the MD5 implementation as well. */
-+ __md5_init_ctx (&ctx);
-+ __md5_finish_ctx (&ctx, alt_result);
-+ memset (&ctx, '\0', sizeof (ctx));
-+ memset (&alt_ctx, '\0', sizeof (alt_ctx));
-+ if (copied_key != NULL)
-+ memset (copied_key, '\0', key_len);
-+ if (copied_salt != NULL)
-+ memset (copied_salt, '\0', salt_len);
-
- return buffer;
- }
-
-
-+static char *buffer;
-+
- char *
- __md5_crypt (const char *key, const char *salt)
- {
- /* We don't want to have an arbitrary limit in the size of the
- password. We can compute the size of the result in advance and
- so we can prepare the buffer we pass to `md5_crypt_r'. */
-- static char *buffer = NULL;
-- static int buflen = 0;
-+ static int buflen;
- int needed = 3 + strlen (salt) + 1 + 26 + 1;
-
- if (buflen < needed)
-@@ -220,4 +253,12 @@
- }
-
- return __md5_crypt_r (key, salt, buffer, buflen);
-+}
-+
-+
-+static void
-+__attribute__ ((__destructor__))
-+free_mem (void)
-+{
-+ free (buffer);
- }
---- glibc-2.1.3/md5-crypt/md5.c 2000/03/04 00:47:30 1.1
-+++ glibc-2.1.3/md5-crypt/md5.c 2000/07/04 18:22:44 1.2
-@@ -1,6 +1,6 @@
--/* md5.c - Functions to compute MD5 message digest of files or memory blocks
-+/* Functions to compute MD5 message digest of files or memory blocks.
- according to the definition of MD5 in RFC 1321 from April 1992.
-- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
-+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -217,6 +217,8 @@
- size_t len;
- struct md5_ctx *ctx;
- {
-+ //const void aligned_buffer = buffer;
-+
- /* When we already have some bits in our internal buffer concatenate
- both inputs first. */
- if (ctx->buflen != 0)
-@@ -224,16 +226,20 @@
- size_t left_over = ctx->buflen;
- size_t add = 128 - left_over > len ? len : 128 - left_over;
-
-+ /* Only put full words in the buffer. */
-+ add -= add % __alignof__ (md5_uint32);
-+
- memcpy (&ctx->buffer[left_over], buffer, add);
- ctx->buflen += add;
-
-- if (left_over + add > 64)
-+ if (ctx->buflen > 64)
- {
-- md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
-+ md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
-+
-+ ctx->buflen &= 63;
- /* The regions in the following copy operation cannot overlap. */
- memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
-- (left_over + add) & 63);
-- ctx->buflen = (left_over + add) & 63;
-+ ctx->buflen);
- }
-
- buffer = (const char *) buffer + add;
-@@ -251,8 +257,17 @@
- /* Move remaining bytes in internal buffer. */
- if (len > 0)
- {
-- memcpy (ctx->buffer, buffer, len);
-- ctx->buflen = len;
-+ size_t left_over = ctx->buflen;
-+
-+ memcpy (&ctx->buffer[left_over], buffer, len);
-+ left_over += len;
-+ if (left_over >= 64)
-+ {
-+ md5_process_block (ctx->buffer, 64, ctx);
-+ left_over -= 64;
-+ memcpy (ctx->buffer, &ctx->buffer[64], left_over);
-+ }
-+ ctx->buflen = left_over;
- }
- }
-
---- glibc-2.1.3/md5-crypt/md5.h 2000/03/04 00:47:30 1.1
-+++ glibc-2.1.3/md5-crypt/md5.h 2000/07/04 18:22:44 1.2
-@@ -1,6 +1,6 @@
- /* Declaration of functions and data types used for MD5 sum computing
- library functions.
-- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
-+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
-@@ -87,7 +87,7 @@
-
- md5_uint32 total[2];
- md5_uint32 buflen;
-- char buffer[128];
-+ char buffer[128] __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
- };
-
- /*