DynamoRIO / DynamoRIO/drmemory
false positive: uninit error reported in ld-linux.so for test loader
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
_From [zhao...@google.com](https://code.google.com/u/106321947286816917100/) on February 20, 2013 17:03:28_
> ../bin/drmemory.pl -debug -dr_ops "-msgbox_mask 0x0 -loglevel 0" -verbose 0 -pause_at_error -- ./unload ./libunloadlib.so
~~Dr.M~~ Dr. Memory version 1.5.1187
~~Dr.M~~
~~Dr.M~~ Error `#1`: UNINITIALIZED READ: reading register eflags
~~Dr.M~~ # 0 ld-linux.so.2!? +0x0 (0xf77950c6 )
~~Dr.M~~ # 1 ld-linux.so.2!? +0x0 (0xf77880c3 )
~~Dr.M~~ # 2 ld-linux.so.2!? +0x0 (0xf7783438 )
~~Dr.M~~ # 3 ld-linux.so.2!? +0x0 (0xf77853a0 )
~~Dr.M~~ # 4 ld-linux.so.2!? +0x0 (0xf778fd5d )
~~Dr.M~~ # 5 ld-linux.so.2!? +0x0 (0xf778bc9e )
~~Dr.M~~ # 6 ld-linux.so.2!? +0x0 (0xf778f7e4 )
~~Dr.M~~ # 7 main [/home/zhaoqin/Workspace/DrMemory/drmemory.svn/tests/unload.c:45]
~~Dr.M~~ Note: @0:00:00.811 in thread 1535
~~Dr.M~~ Note: instruction: jnb $0xf77951e2
pausing at error
0xf77950b1: mov (%eax),%ecx
0xf77950b3: mov $0xfefefeff,%ebp
0xf77950b8: mov $0xfefefeff,%edi
0xf77950bd: add %ecx,%ebp
0xf77950bf: xor %ecx,%ebp
0xf77950c1: add %ecx,%edi
0xf77950c3: lea 0x4(%eax),%eax
0xf77950c6: jae 0xf77951e2
(gdb) p/x mc->eax
$4 = 0x9bdc344
(gdb) x/40c 0x9bdc320
0x9bdc320: 121 'y' 47 '/' 98 'b' 117 'u' 105 'i' 108 'l' 100 'd' 115 's'
0x9bdc328: 47 '/' 98 'b' 117 'u' 105 'i' 108 'l' 100 'd' 95 '_' 120 'x'
0x9bdc330: 56 '8' 54 '6' 95 '_' 100 'd' 98 'b' 103 'g' 46 '.' 115 's'
0x9bdc338: 118 'v' 110 'n' 47 '/' 116 't' 101 'e' 115 's' 116 't' 115 's'
0x9bdc340: 0 '\000' 0 '\000' 0 '\000' 0 '\000' 0 '\000'
it looks like the code is trying to determine the end of string.
We have suppression for strlen in ld-linux.so, but my ld-linux.so does not have the symbol.
_Original issue: http://code.google.com/p/drmemory/issues/detail?id=1135_
Contributor guide
Assessment
This issue has not been assessed yet.