Bug 689471 - SSE4 strncmp failure
Summary: SSE4 strncmp failure
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: glibc
Version: 6.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Andreas Schwab
QA Contact: qe-baseos-tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-03-21 15:59 UTC by Andreas Schwab
Modified: 2016-11-24 15:38 UTC (History)
3 users (show)

Fixed In Version: glibc-2.12-1.24.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-05-19 13:16:28 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:0584 0 normal SHIPPED_LIVE glibc bug fix and enhancement update 2011-05-18 17:56:51 UTC
Sourceware 12597 0 None None None Never

Description Andreas Schwab 2011-03-21 15:59:44 UTC
H.J. Lu      2011-03-21 05:42:34 CET  
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 4 errata-xmlrpc 2011-05-19 13:16:28 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0584.html


Note You need to log in before you can comment on or make changes to this bug.