forked from rpms/glibc
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| PURPOSE of /tools/glibc/Regression/bz689471-SSE4-strncmp-failure
 | |
| Description: Test for bz689471 (SSE4 strncmp failure)
 | |
| Author: Miroslav Franc <mfranc@redhat.com>
 | |
| Bug summary: SSE4 strncmp failure
 | |
| Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=689471
 | |
| 
 | |
| Description:
 | |
| 
 | |
| 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)
 |