Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2014-11-04 17:27:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glibc (Old) and /work/SRC/openSUSE:Factory/.glibc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc" Changes: -------- --- /work/SRC/openSUSE:Factory/glibc/glibc-testsuite.changes 2014-10-15 16:19:14.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes 2014-11-04 17:27:48.000000000 +0100 @@ -1,0 +2,8 @@ +Tue Oct 28 08:56:47 UTC 2014 - [email protected] + +- Update to crypt_blowfish 1.3. + * Add support for the $2b$ prefix. +- ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit + (BZ #17501) + +------------------------------------------------------------------- glibc-utils.changes: same change glibc.changes: same change Old: ---- crypt_blowfish-1.2.tar.gz crypt_blowfish-1.2.tar.gz.sign New: ---- crypt_blowfish-1.3.tar.gz crypt_blowfish-1.3.tar.gz.sign ifunc-x86-slow-sse4.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc-testsuite.spec ++++++ --- /var/tmp/diff_new_pack.j0y5zH/_old 2014-11-04 17:27:49.000000000 +0100 +++ /var/tmp/diff_new_pack.j0y5zH/_new 2014-11-04 17:27:49.000000000 +0100 @@ -24,7 +24,7 @@ # It will avoid building some parts of glibc %bcond_with fast_build -%define crypt_bf_version 1.2 +%define crypt_bf_version 1.3 Name: glibc-testsuite %define normal_build ("%{name}" == "glibc") @@ -232,6 +232,8 @@ ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) +Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -450,6 +452,8 @@ %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 glibc-utils.spec: same change ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.j0y5zH/_old 2014-11-04 17:27:49.000000000 +0100 +++ /var/tmp/diff_new_pack.j0y5zH/_new 2014-11-04 17:27:50.000000000 +0100 @@ -24,7 +24,7 @@ # It will avoid building some parts of glibc %bcond_with fast_build -%define crypt_bf_version 1.2 +%define crypt_bf_version 1.3 Name: glibc %define normal_build ("%{name}" == "glibc") @@ -232,6 +232,8 @@ ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501) +Patch1000: ifunc-x86-slow-sse4.patch ### # Patches awaiting upstream approval @@ -450,6 +452,8 @@ %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2002 -p1 %patch2003 -p1 ++++++ crypt_blowfish-1.2-sha.diff ++++++ --- /var/tmp/diff_new_pack.j0y5zH/_old 2014-11-04 17:27:50.000000000 +0100 +++ /var/tmp/diff_new_pack.j0y5zH/_new 2014-11-04 17:27:50.000000000 +0100 @@ -9,10 +9,10 @@ wrapper.c | 23 +++++++++++++++++++++ 3 files changed, 95 insertions(+), 0 deletions(-) -Index: crypt_blowfish-1.2/crypt.3 +Index: crypt_blowfish-1.3/crypt.3 =================================================================== ---- crypt_blowfish-1.2.orig/crypt.3 -+++ crypt_blowfish-1.2/crypt.3 +--- crypt_blowfish-1.3.orig/crypt.3 ++++ crypt_blowfish-1.3/crypt.3 @@ -399,6 +399,20 @@ too low for the currently available hard .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 .PP @@ -34,10 +34,10 @@ .BR "OpenBSD-style Blowfish-based" " (" bcrypt ) .br .B bcrypt -Index: crypt_blowfish-1.2/crypt_gensalt.c +Index: crypt_blowfish-1.3/crypt_gensalt.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.c -+++ crypt_blowfish-1.2/crypt_gensalt.c +--- crypt_blowfish-1.3.orig/crypt_gensalt.c ++++ crypt_blowfish-1.3/crypt_gensalt.c @@ -19,6 +19,7 @@ */ @@ -107,10 +107,10 @@ + errno = ENOMEM; + return NULL; +} -Index: crypt_blowfish-1.2/crypt_gensalt.h +Index: crypt_blowfish-1.3/crypt_gensalt.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.h -+++ crypt_blowfish-1.2/crypt_gensalt.h +--- crypt_blowfish-1.3.orig/crypt_gensalt.h ++++ crypt_blowfish-1.3/crypt_gensalt.h @@ -26,5 +26,7 @@ extern char *_crypt_gensalt_extended_rn( const char *input, int size, char *output, int output_size); extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count, @@ -119,10 +119,10 @@ + const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/wrapper.c +Index: crypt_blowfish-1.3/wrapper.c =================================================================== ---- crypt_blowfish-1.2.orig/wrapper.c -+++ crypt_blowfish-1.2/wrapper.c +--- crypt_blowfish-1.3.orig/wrapper.c ++++ crypt_blowfish-1.3/wrapper.c @@ -50,6 +50,10 @@ #include "crypt.h" extern char *__md5_crypt_r(const char *key, const char *salt, @@ -169,6 +169,6 @@ + if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) + use = _crypt_gensalt_sha2_rn; + else - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) + if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || + !strncmp(prefix, "$2y$", 4)) use = _crypt_gensalt_blowfish_rn; - else ++++++ crypt_blowfish-1.2.tar.gz -> crypt_blowfish-1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crypt_blowfish-1.2/README new/crypt_blowfish-1.3/README --- old/crypt_blowfish-1.2/README 2011-07-16 23:48:45.000000000 +0200 +++ new/crypt_blowfish-1.3/README 2014-07-07 17:19:04.000000000 +0200 @@ -1,8 +1,8 @@ This is an implementation of a password hashing method, provided via the -crypt(3) and a reentrant interface. It is mostly compatible with -OpenBSD's bcrypt.c (prefix "$2a$") by Niels Provos and David Mazieres. -(Please refer to the included crypt(3) man page for information on -compatibility issues.) +crypt(3) and a reentrant interface. It is fully compatible with +OpenBSD's bcrypt.c for prefix "$2b$", originally by Niels Provos and +David Mazieres. (Please refer to the included crypt(3) man page for +information on minor compatibility issues for other bcrypt prefixes.) I've placed this code in the public domain, with fallback to a permissive license. Please see the comment in crypt_blowfish.c for @@ -65,4 +65,4 @@ -- Solar Designer <solar at openwall.com> -$Owl: Owl/packages/glibc/crypt_blowfish/README,v 1.9 2011/07/16 21:48:45 solar Exp $ +$Owl: Owl/packages/glibc/crypt_blowfish/README,v 1.10 2014/07/07 15:19:04 solar Exp $ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crypt_blowfish-1.2/crypt.3 new/crypt_blowfish-1.3/crypt.3 --- old/crypt_blowfish-1.2/crypt.3 2011-07-16 16:55:47.000000000 +0200 +++ new/crypt_blowfish-1.3/crypt.3 2014-07-07 17:15:09.000000000 +0200 @@ -13,7 +13,7 @@ .\" This manual page in its current form is intended for use on systems .\" based on the GNU C Library with crypt_blowfish patched into libcrypt. .\" -.TH CRYPT 3 "July 16, 2011" "Openwall Project" "Library functions" +.TH CRYPT 3 "July 7, 2014" "Openwall Project" "Library functions" .ad l .\" No macros in NAME to keep makewhatis happy. .SH NAME @@ -392,8 +392,8 @@ .br This is Poul-Henning Kamp's MD5-based password hashing method originally developed for FreeBSD. -It is currently supported on many free Unix-like systems, on Solaris 10, -and it is a part of the official glibc. +It is currently supported on many free Unix-like systems, on Solaris 10 +and newer, and it is part of the official glibc. Its main disadvantage is the fixed iteration count, which is already too low for the currently available hardware. .hash "$1$" "\e$1\e$[^$]{1,8}\e$[./0-9A-Za-z]{22}" unlimited 8 "" 128 "6 to 48" 1000 @@ -404,8 +404,8 @@ .B bcrypt was originally developed by Niels Provos and David Mazieres for OpenBSD and is also supported on recent versions of FreeBSD and NetBSD, -on Solaris 10, and on several GNU/*/Linux distributions. -It is, however, not a part of the official glibc. +on Solaris 10 and newer, and on several GNU/*/Linux distributions. +It is, however, not part of the official glibc. .PP While both .B bcrypt @@ -414,7 +414,7 @@ may scale to even faster hardware, doesn't allow for certain optimizations specific to password cracking only, doesn't have the effective key size limitation, and uses 8-bit characters in passwords. -.hash "$2y$" "\e$2[axy]\e$[0-9]{2}\e$[./A-Za-z0-9]{53}" 72 8 "" 184 128 "2**4 to 2**99 (current implementations are limited to 2**31 iterations)" +.hash "$2b$" "\e$2[abxy]\e$[0-9]{2}\e$[./A-Za-z0-9]{53}" 72 8 "" 184 128 "2**4 to 2**99 (current implementations are limited to 2**31 iterations)" .PP With .BR bcrypt , @@ -432,20 +432,21 @@ Besides fixing the bug, to provide for upgrade strategies for existing systems, two new prefixes were introduced: "$2x$", which fully re-introduces the bug, and "$2y$", which -guarantees correct handling of both 7- and 8-bit characters (same as OpenBSD's -"$2a$"). +guarantees correct handling of both 7- and 8-bit characters. +OpenBSD 5.5 introduced the "$2b$" prefix for behavior that exactly matches +crypt_blowfish's "$2y$", and current crypt_blowfish supports it as well. Unfortunately, the behavior of "$2a$" on password characters with the 8th bit set has to be considered system-specific. -When generating new password hashes, the "$2y$" prefix should be used. +When generating new password hashes, the "$2b$" or "$2y$" prefix should be used. (If such hashes ever need to be migrated to a system that does not yet support -this new prefix, the prefix in migrated copies of the already-generated hashes -may be changed to "$2a$".) +these new prefixes, the prefix in migrated copies of the already-generated +hashes may be changed to "$2a$".) .PP .crypt_gensalt and -support the "$2y$" and "$2a$" prefixes (the latter for legacy programs or -configurations), but not "$2x$" (which must not be used for new hashes). +support the "$2b$", "$2y$", and "$2a$" prefixes (the latter for legacy programs +or configurations), but not "$2x$" (which must not be used for new hashes). .crypt and -support all three of these prefixes. +support all four of these prefixes. .SH PORTABILITY NOTES Programs using any of these functions on a glibc 2.x system must be linked against @@ -480,7 +481,7 @@ is an Openwall extension. There's also a .B crypt_gensalt -function on Solaris 10, but the prototypes and semantics differ. +function on Solaris 10 and newer, but the prototypes and semantics differ. .PP .BR crypt_rn , .BR crypt_ra , diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crypt_blowfish-1.2/crypt_blowfish.c new/crypt_blowfish-1.3/crypt_blowfish.c --- old/crypt_blowfish-1.2/crypt_blowfish.c 2011-07-16 17:15:16.000000000 +0200 +++ new/crypt_blowfish-1.3/crypt_blowfish.c 2014-07-07 16:53:34.000000000 +0200 @@ -7,11 +7,11 @@ * and crypt(3) interfaces added, but optimizations specific to password * cracking removed. * - * Written by Solar Designer <solar at openwall.com> in 1998-2011. + * Written by Solar Designer <solar at openwall.com> in 1998-2014. * No copyright is claimed, and the software is hereby placed in the public * domain. In case this attempt to disclaim copyright and place the software * in the public domain is deemed null and void, then the software is - * Copyright (c) 1998-2011 Solar Designer and it is hereby released to the + * Copyright (c) 1998-2014 Solar Designer and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without @@ -27,12 +27,12 @@ * you place this code and any modifications you make under a license * of your choice. * - * This implementation is mostly compatible with OpenBSD's bcrypt.c (prefix - * "$2a$") by Niels Provos <provos at citi.umich.edu>, and uses some of his - * ideas. The password hashing algorithm was designed by David Mazieres - * <dm at lcs.mit.edu>. For more information on the level of compatibility, - * prefer refer to the comments in BF_set_key() below and to the included - * crypt(3) man page. + * This implementation is fully compatible with OpenBSD's bcrypt.c for prefix + * "$2b$", originally by Niels Provos <provos at citi.umich.edu>, and it uses + * some of his ideas. The password hashing algorithm was designed by David + * Mazieres <dm at lcs.mit.edu>. For information on the level of + * compatibility for bcrypt hash prefixes other than "$2b$", please refer to + * the comments in BF_set_key() below and to the included crypt(3) man page. * * There's a paper on the algorithm that explains its design decisions: * @@ -578,6 +578,7 @@ * Valid combinations of settings are: * * Prefix "$2a$": bug = 0, safety = 0x10000 + * Prefix "$2b$": bug = 0, safety = 0 * Prefix "$2x$": bug = 1, safety = 0 * Prefix "$2y$": bug = 0, safety = 0 */ @@ -641,6 +642,10 @@ initial[0] ^= sign; } +static const unsigned char flags_by_subtype[26] = + {2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0}; + static char *BF_crypt(const char *key, const char *setting, char *output, int size, BF_word min) @@ -648,9 +653,6 @@ #if BF_ASM extern void _BF_body_r(BF_ctx *ctx); #endif - static const unsigned char flags_by_subtype[26] = - {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0}; struct { BF_ctx ctx; BF_key expanded_key; @@ -816,9 +818,10 @@ { const char *test_key = "8b \xd0\xc1\xd2\xcf\xcc\xd8"; const char *test_setting = "$2a$00$abcdefghijklmnopqrstuu"; - static const char * const test_hash[2] = - {"VUrPmXD6q/nVSSp7pNDhCR9071IfIRe\0\x55", /* $2x$ */ - "i1D709vfamulimlGcq0qq3UvuUasvEa\0\x55"}; /* $2a$, $2y$ */ + static const char * const test_hashes[2] = + {"i1D709vfamulimlGcq0qq3UvuUasvEa\0\x55", /* 'a', 'b', 'y' */ + "VUrPmXD6q/nVSSp7pNDhCR9071IfIRe\0\x55"}; /* 'x' */ + const char *test_hash = test_hashes[0]; char *retval; const char *p; int save_errno, ok; @@ -840,17 +843,19 @@ * detected by the self-test. */ memcpy(buf.s, test_setting, sizeof(buf.s)); - if (retval) + if (retval) { + unsigned int flags = flags_by_subtype[ + (unsigned int)(unsigned char)setting[2] - 'a']; + test_hash = test_hashes[flags & 1]; buf.s[2] = setting[2]; + } memset(buf.o, 0x55, sizeof(buf.o)); buf.o[sizeof(buf.o) - 1] = 0; p = BF_crypt(test_key, buf.s, buf.o, sizeof(buf.o) - (1 + 1), 1); ok = (p == buf.o && !memcmp(p, buf.s, 7 + 22) && - !memcmp(p + (7 + 22), - test_hash[(unsigned int)(unsigned char)buf.s[2] & 1], - 31 + 1 + 1 + 1)); + !memcmp(p + (7 + 22), test_hash, 31 + 1 + 1 + 1)); { const char *k = "\xff\xa3" "34" "\xff\xff\xff\xa3" "345"; @@ -879,7 +884,7 @@ if (size < 16 || output_size < 7 + 22 + 1 || (count && (count < 4 || count > 31)) || prefix[0] != '$' || prefix[1] != '2' || - (prefix[2] != 'a' && prefix[2] != 'y')) { + (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { if (output_size > 0) output[0] = '\0'; __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crypt_blowfish-1.2/wrapper.c new/crypt_blowfish-1.3/wrapper.c --- old/crypt_blowfish-1.2/wrapper.c 2011-07-16 17:07:22.000000000 +0200 +++ new/crypt_blowfish-1.3/wrapper.c 2014-07-07 16:49:16.000000000 +0200 @@ -1,9 +1,9 @@ /* - * Written by Solar Designer <solar at openwall.com> in 2000-2011. + * Written by Solar Designer <solar at openwall.com> in 2000-2014. * No copyright is claimed, and the software is hereby placed in the public * domain. In case this attempt to disclaim copyright and place the software * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the + * Copyright (c) 2000-2014 Solar Designer and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without @@ -210,7 +210,8 @@ return NULL; } - if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) + if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || + !strncmp(prefix, "$2y$", 4)) use = _crypt_gensalt_blowfish_rn; else if (!strncmp(prefix, "$1$", 3)) @@ -293,10 +294,14 @@ "\xff\xff\xa3"}, {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.nqd1wy.pTMdcvrRWxyiGL2eMz.2a85.", "\xff\xff\xa3"}, + {"$2b$05$/OK.fbVrR/bpIqNJ5ianF.CE5elHaaO4EbggVDjb8P19RukzXSM3e", + "\xff\xff\xa3"}, {"$2y$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", "\xa3"}, {"$2a$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", "\xa3"}, + {"$2b$05$/OK.fbVrR/bpIqNJ5ianF.Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq", + "\xa3"}, {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", "1\xa3" "345"}, {"$2x$05$/OK.fbVrR/bpIqNJ5ianF.o./n25XVfn6oAPaUvHe.Csk4zRfsYPi", @@ -347,6 +352,7 @@ ""}, {"*0", "", "$2a$03$CCCCCCCCCCCCCCCCCCCCC."}, {"*0", "", "$2a$32$CCCCCCCCCCCCCCCCCCCCC."}, + {"*0", "", "$2c$05$CCCCCCCCCCCCCCCCCCCCC."}, {"*0", "", "$2z$05$CCCCCCCCCCCCCCCCCCCCC."}, {"*0", "", "$2`$05$CCCCCCCCCCCCCCCCCCCCC."}, {"*0", "", "$2{$05$CCCCCCCCCCCCCCCCCCCCC."}, ++++++ crypt_blowfish-gensalt.patch ++++++ --- /var/tmp/diff_new_pack.j0y5zH/_old 2014-11-04 17:27:50.000000000 +0100 +++ /var/tmp/diff_new_pack.j0y5zH/_new 2014-11-04 17:27:50.000000000 +0100 @@ -1,8 +1,8 @@ -Index: crypt_blowfish-1.2/crypt_blowfish.c +Index: crypt_blowfish-1.3/crypt_blowfish.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_blowfish.c -+++ crypt_blowfish-1.2/crypt_blowfish.c -@@ -872,31 +872,3 @@ char *_crypt_blowfish_rn(const char *key +--- crypt_blowfish-1.3.orig/crypt_blowfish.c ++++ crypt_blowfish-1.3/crypt_blowfish.c +@@ -877,31 +877,3 @@ char *_crypt_blowfish_rn(const char *key __set_errno(EINVAL); /* pretend we don't support this hash type */ return NULL; } @@ -13,7 +13,7 @@ - if (size < 16 || output_size < 7 + 22 + 1 || - (count && (count < 4 || count > 31)) || - prefix[0] != '$' || prefix[1] != '2' || -- (prefix[2] != 'a' && prefix[2] != 'y')) { +- (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { - if (output_size > 0) output[0] = '\0'; - __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); - return NULL; @@ -34,10 +34,10 @@ - - return output; -} -Index: crypt_blowfish-1.2/crypt_blowfish.h +Index: crypt_blowfish-1.3/crypt_blowfish.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_blowfish.h -+++ crypt_blowfish-1.2/crypt_blowfish.h +--- crypt_blowfish-1.3.orig/crypt_blowfish.h ++++ crypt_blowfish-1.3/crypt_blowfish.h @@ -20,8 +20,5 @@ extern int _crypt_output_magic(const char *setting, char *output, int size); extern char *_crypt_blowfish_rn(const char *key, const char *setting, @@ -47,10 +47,10 @@ - const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/crypt_gensalt.c +Index: crypt_blowfish-1.3/crypt_gensalt.c =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.c -+++ crypt_blowfish-1.2/crypt_gensalt.c +--- crypt_blowfish-1.3.orig/crypt_gensalt.c ++++ crypt_blowfish-1.3/crypt_gensalt.c @@ -20,6 +20,7 @@ #include <string.h> @@ -108,7 +108,7 @@ + if (size < 16 || output_size < 7 + 22 + 1 || + (count && (count < 4 || count > 31)) || + prefix[0] != '$' || prefix[1] != '2' || -+ (prefix[2] != 'a' && prefix[2] != 'y')) { ++ (prefix[2] != 'a' && prefix[2] != 'b' && prefix[2] != 'y')) { + if (output_size > 0) output[0] = '\0'; + __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); + return NULL; @@ -129,10 +129,10 @@ + + return output; +} -Index: crypt_blowfish-1.2/crypt_gensalt.h +Index: crypt_blowfish-1.3/crypt_gensalt.h =================================================================== ---- crypt_blowfish-1.2.orig/crypt_gensalt.h -+++ crypt_blowfish-1.2/crypt_gensalt.h +--- crypt_blowfish-1.3.orig/crypt_gensalt.h ++++ crypt_blowfish-1.3/crypt_gensalt.h @@ -28,5 +28,8 @@ extern char *_crypt_gensalt_md5_rn(const const char *input, int size, char *output, int output_size); extern char *_crypt_gensalt_sha2_rn(const char *prefix, unsigned long count, @@ -142,11 +142,11 @@ + const char *input, int size, char *output, int output_size); #endif -Index: crypt_blowfish-1.2/wrapper-gensalt.c +Index: crypt_blowfish-1.3/wrapper-gensalt.c =================================================================== --- /dev/null -+++ crypt_blowfish-1.2/wrapper-gensalt.c -@@ -0,0 +1,113 @@ ++++ crypt_blowfish-1.3/wrapper-gensalt.c +@@ -0,0 +1,114 @@ +/* + * Written by Solar Designer <solar at openwall.com> in 2000-2011. + * No copyright is claimed, and the software is hereby placed in the public @@ -202,7 +202,8 @@ + if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) + use = _crypt_gensalt_sha2_rn; + else -+ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) ++ if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || ++ !strncmp(prefix, "$2y$", 4)) + use = _crypt_gensalt_blowfish_rn; + else + if (!strncmp(prefix, "$1$", 3)) @@ -260,10 +261,10 @@ +weak_alias(__crypt_gensalt, crypt_gensalt) +#endif + -Index: crypt_blowfish-1.2/wrapper.c +Index: crypt_blowfish-1.3/wrapper.c =================================================================== ---- crypt_blowfish-1.2.orig/wrapper.c -+++ crypt_blowfish-1.2/wrapper.c +--- crypt_blowfish-1.3.orig/wrapper.c ++++ crypt_blowfish-1.3/wrapper.c @@ -35,7 +35,6 @@ #endif @@ -280,7 +281,7 @@ #if defined(__GLIBC__) && defined(_LIBC) /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ -@@ -209,88 +207,11 @@ char *crypt(const char *key, const char +@@ -209,89 +207,11 @@ char *crypt(const char *key, const char crypt_rn(key, setting, output, sizeof(output)), setting, output, sizeof(output)); } @@ -306,7 +307,8 @@ - if (!strncmp(prefix, "$5$", 3) || !strncmp(prefix, "$6$", 3)) - use = _crypt_gensalt_sha2_rn; - else -- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2y$", 4)) +- if (!strncmp(prefix, "$2a$", 4) || !strncmp(prefix, "$2b$", 4) || +- !strncmp(prefix, "$2y$", 4)) - use = _crypt_gensalt_blowfish_rn; - else - if (!strncmp(prefix, "$1$", 3)) ++++++ ifunc-x86-slow-sse4.patch ++++++ 2014-10-27 Andreas Schwab <[email protected]> [BZ #17501] * sysdeps/i386/i686/multiarch/strcasecmp.S (__strcasecmp): Fix check for Slow_SSE4_2 feature bit. * sysdeps/i386/i686/multiarch/strcmp.S (STRCMP): Likewise. * sysdeps/i386/i686/multiarch/strncase.S (__strncasecmp): Likewise. * sysdeps/x86_64/multiarch/strcmp.S (STRCMP, __strcascmp): Likewise. Fix check for Fast_Unaligned_Load feature bit. Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S =================================================================== --- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcasecmp.S +++ glibc-2.20/sysdeps/i386/i686/multiarch/strcasecmp.S @@ -37,7 +37,7 @@ ENTRY(__strcasecmp) leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) jnz 2f leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax 2: popl %ebx @@ -58,7 +58,7 @@ ENTRY(__strcasecmp) leal __strcasecmp_ssse3, %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features jnz 2f leal __strcasecmp_sse4_2, %eax 2: ret Index: glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S =================================================================== --- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strcmp.S +++ glibc-2.20/sysdeps/i386/i686/multiarch/strcmp.S @@ -68,7 +68,7 @@ ENTRY(STRCMP) leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) jnz 2f leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax 2: popl %ebx @@ -89,7 +89,7 @@ ENTRY(STRCMP) leal __STRCMP_SSSE3, %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features jnz 2f leal __STRCMP_SSE4_2, %eax 2: ret Index: glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S =================================================================== --- glibc-2.20.orig/sysdeps/i386/i686/multiarch/strncase.S +++ glibc-2.20/sysdeps/i386/i686/multiarch/strncase.S @@ -37,7 +37,7 @@ ENTRY(__strncasecmp) leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features@GOTOFF(%ebx) jnz 2f leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax 2: popl %ebx @@ -58,7 +58,7 @@ ENTRY(__strncasecmp) leal __strncasecmp_ssse3, %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features jz 2f - testl $bit_Slow_SSE4_2, CPUID_OFFSET+index_Slow_SSE4_2+__cpu_features + testl $bit_Slow_SSE4_2, FEATURE_OFFSET+index_Slow_SSE4_2+__cpu_features jnz 2f leal __strncasecmp_sse4_2, %eax 2: ret Index: glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S =================================================================== --- glibc-2.20.orig/sysdeps/x86_64/multiarch/strcmp.S +++ glibc-2.20/sysdeps/x86_64/multiarch/strcmp.S @@ -91,10 +91,10 @@ ENTRY(STRCMP) 1: #ifdef USE_AS_STRCMP leaq __strcmp_sse2_unaligned(%rip), %rax - testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip) + testl $bit_Fast_Unaligned_Load, __cpu_features+FEATURE_OFFSET+index_Fast_Unaligned_Load(%rip) jnz 3f #else - testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) + testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) jnz 2f leaq STRCMP_SSE42(%rip), %rax testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) @@ -120,7 +120,7 @@ ENTRY(__strcasecmp) testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) jnz 3f # endif - testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) + testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) jnz 2f leaq __strcasecmp_sse42(%rip), %rax testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) @@ -146,7 +146,7 @@ ENTRY(__strncasecmp) testl $bit_AVX_Usable, __cpu_features+FEATURE_OFFSET+index_AVX_Usable(%rip) jnz 3f # endif - testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip) + testl $bit_Slow_SSE4_2, __cpu_features+FEATURE_OFFSET+index_Slow_SSE4_2(%rip) jnz 2f leaq __strncasecmp_sse42(%rip), %rax testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
