steleman / address-sanitizer

Automatically exported from code.google.com/p/address-sanitizer
0 stars 0 forks source link

pthread_cond_init interceptor fails #297

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The sanitized code failed with segfault when the libc.so is configured to 
support only latest versions of symbols. The pthread_cond_init interceptor is 
trying to get the symbol versioned as "GLIBC_2.3.2" while the libc.so has only 
"pthread_cond_init@@GLIBC_2.4" symbol. 

What steps will reproduce the problem?
1. Configure and install libc.so with oldest abi support disabled.
2. Call pthread_cond_init 

What is the expected output? What do you see instead?
ASAN:SIGSEGV
=================================================================
==149==ERROR: AddressSanitizer: SEGV on unknown address 0x00000000 (pc 
0x00000000 sp 0xbeac8b60 bp 0xbeac8b84 T0)

AddressSanitizer can not provide additional info.

What version of the product are you using? On what operating system?
gcc 4.8

Original issue reported on code.google.com by mguse...@gmail.com on 16 Apr 2014 at 8:37

GoogleCodeExporter commented 9 years ago
In addition to this glibc may be built with unversioned symbols.

Original comment by tetra2...@gmail.com on 16 Apr 2014 at 8:56

GoogleCodeExporter commented 9 years ago
We need to pthread_cond interceptors from asan/msan.
Tsan does need them, but we don't have a good solution.

Original comment by dvyu...@google.com on 16 Apr 2014 at 9:02

GoogleCodeExporter commented 9 years ago
s/need to pthread_cond/need to remove pthread_cond/

See https://code.google.com/p/thread-sanitizer/issues/detail?id=58

Original comment by konstant...@gmail.com on 16 Apr 2014 at 9:05

GoogleCodeExporter commented 9 years ago
Should be fixed by r206423.

Original comment by samso...@google.com on 16 Apr 2014 at 11:37