diff --git a/string/test-strncasecmp.c b/string/test-strncasecmp.c index 6c17530..1b90e06 100644 --- a/string/test-strncasecmp.c +++ b/string/test-strncasecmp.c @@ -270,6 +270,14 @@ check1 (void) check_result (impl, s1, s2, n, exp_result); } +static void +bz12205 (void) +{ + const char *empty_string = ""; + FOR_EACH_IMPL (impl, 0) + check_result (impl, empty_string, "", 5, 0); +} + int test_main (void) { @@ -278,6 +286,7 @@ test_main (void) test_init (); check1 (); + bz12205 (); printf ("%23s", ""); FOR_EACH_IMPL (impl, 0) diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S old mode 100644 new mode 100755 index 5e6321e..9735ad0 --- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S @@ -2445,7 +2445,7 @@ L(less16bytes_sncmp): # endif jne L(neq_sncmp) test %cl, %cl - je L(eq) + je L(eq_sncmp) cmp $1, REM je L(eq_sncmp)