DynamoRIO / DynamoRIO/drmemory
NlsStrLenW uninit from getnameinfo
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on May 05, 2011 18:00:32_
running:
% /usr/bin/time ~/drmemory/git/build_drmemory/bin/drmemory.exe -batch -callstack_max_frames 20 -pause_at_exit -pause_at_assert -dr_ops "-no_hide" -debug -dr c:/src/dr/git/exports -- ./net_unittests.exe --gtest_filter="URLRequestTestHTTP.ProxyTunnelRedirectTest"
for this test my ioctls have eliminated all but 2 types of uninit.
one is from getnameinfo and it has been surprisingly difficult to track down. a fully-defined sockaddr with address 127.0.0.1 is passed in all all getnameinfo has to do is sprintf it into a string. yet somehow the L'2' ends up uninit w/ the rest of the string defined.
Error `#2`: UNINITIALIZED READ: reading 0x002a947a-0x002a947c 2 byte(s)
@0:00:29.944 in thread 7044
0x76644a2e KERNELBASE.dll!NlsStrLenW
??:0
0x770ee61f WS2_32.dll!getnameinfo
??:0
0x018c5fe2 net_unittests.exe!net::NetAddressToString
c:\src\chromium\src\net\base\net_util.cc:1684
0x006d61c1 net_unittests.exe!net::NetAddressToStringWithPort
c:\src\chromium\src\net\base\net_util.cc:1700
0x006d617a net_unittests.exe!net::NetAddressToStringWithPort
c:\src\chromium\src\net\base\net_util.cc:1696
0x00be2d62 net_unittests.exe!net::TCPClientSocketWin::DoConnect
c:\src\chromium\src\net\socket\tcp_client_socket_win.cc:315
_Original issue: http://code.google.com/p/drmemory/issues/detail?id=387_
Contributor guide
Assessment
This issue has not been assessed yet.