Bug 12597 - SSE4 strncmp failure
Summary: SSE4 strncmp failure
Status: RESOLVED FIXED
Alias: None
Product: glibc
Classification: Unclassified
Component: libc (show other bugs)
Version: 2.13
: P2 normal
Target Milestone: ---
Assignee: Ulrich Drepper
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-21 04:42 UTC by H.J. Lu
Modified: 2011-03-21 09:39 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
A patch (1.57 KB, patch)
2011-03-21 04:52 UTC, H.J. Lu
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2011-03-21 04:42:34 UTC
On Intel Core i7, I got

[hjl@gnu-6 997]$ cat saved.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>

int main()
{
    char *buf, *buf2;

    buf = (char*)mmap((void*)0x100000000, 0x2000 * 2,
                      PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    buf = mmap((char *)buf, 0x2000, PROT_READ | PROT_WRITE,
               MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
    memset(buf, 'a', 0x2000);
    buf[0x1fff] = 0;
    buf2 = strdup(buf);
    if (strncmp (buf + 3994, buf2 + 2635, 6241) >= 0)
      abort ();

    return 0;
}
[hjl@gnu-6 997]$ gcc saved.c
[hjl@gnu-6 997]$ ./a.out 
Segmentation fault
[hjl@gnu-6 997]$ gdb a.out 
GNU gdb (GDB) 7.2.50.20110312-cvs
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /export/home/hjl/bugs/libc/997/a.out...(no debugging symbols found)...done.
(gdb) r
Starting program: /export/home/hjl/bugs/libc/997/a.out 

Program received signal SIGSEGV, Segmentation fault.
0x0000003f7d3214a0 in __strncmp_sse42 () from /lib64/libc.so.6
(gdb)
Comment 1 H.J. Lu 2011-03-21 04:52:45 UTC
Created attachment 5319 [details]
A patch
Comment 2 Ulrich Drepper 2011-03-21 09:39:36 UTC
I checked in the patch.