drmemory icon indicating copy to clipboard operation
drmemory copied to clipboard

False positive on Win API WS2_32 calls

Open DavidPerretSN opened this issue 1 year ago • 0 comments

Describe the bug Although I found here some past issues telling that these reports where "false positives" and fixed around 2015, it seems that simple programs using windows sockets and file API still reports "UNINITIALIZED READ"

To Reproduce Create a new cmake project in MSVC 2022 17.4.3, using Win10 SDK and edit the cmakelists.txt to link on ws2_32 library

Compile the following program

#define WIN32_LEAN_AND_MEAN

#include <ws2tcpip.h>

int main()
{
	WSAData wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);
	WSACleanup();
	return 0;
}

Output is :

Error #1: UNINITIALIZED READ: reading register eax
# 0 WS2_32.dll!WSALookupServiceNextW   +0x23f1   (0x00007ff805ceded1 <WS2_32.dll+0xded1>)
# 1 WS2_32.dll!WSALookupServiceNextW   +0x2ffd   (0x00007ff805ceeade <WS2_32.dll+0xeade>)
# 2 WS2_32.dll!WSAStartup              +0x33c    (0x00007ff805ceee4d <WS2_32.dll+0xee4d>)
# 3 main                                [C:\Users\...\source\repos\WinSocketsCalls\WinSocketsCalls.cpp:17]
Note: @0:00:00.262 in thread 26452
Note: instruction: cmp    %eax %r12d

Error #2: UNINITIALIZED READ: reading register eflags
# 0 WS2_32.dll!WSALookupServiceNextW   +0x240f   (0x00007ff805cedeef <WS2_32.dll+0xdeef>)
# 1 WS2_32.dll!WSALookupServiceNextW   +0x2ffd   (0x00007ff805ceeade <WS2_32.dll+0xeade>)
# 2 WS2_32.dll!WSAStartup              +0x33c    (0x00007ff805ceee4d <WS2_32.dll+0xee4d>)
# 3 main                                [C:\Users\...\source\repos\WinSocketsCalls\WinSocketsCalls.cpp:17]
Note: @0:00:00.263 in thread 26452
Note: instruction: cmovo  %r13 -> %rax

Error #3: UNINITIALIZED READ: reading 0x000000ef7b5af940-0x000000ef7b5af944 4 byte(s) within 0x000000ef7b5af940-0x000000ef7b5af948
# 0 replace_memset                      [D:\a\drmemory\drmemory\drmemory\replace.c:194]
# 1 WS2_32.dll!WSALookupServiceNextW   +0x2448   (0x00007ff805cedf29 <WS2_32.dll+0xdf29>)
# 2 WS2_32.dll!WSALookupServiceNextW   +0x2ffd   (0x00007ff805ceeade <WS2_32.dll+0xeade>)
# 3 WS2_32.dll!WSAStartup              +0x33c    (0x00007ff805ceee4d <WS2_32.dll+0xee4d>)
# 4 main                                [C:\Users\...\source\repos\WinSocketsCalls\WinSocketsCalls.cpp:17]
Note: @0:00:00.277 in thread 26452
Note: instruction: cmp    0x30(%rsp) $0x0000000000000003

Expected behavior This program should be valid and no errors should be reported

Versions

  • What version of Dr. Memory are you using? Dr. Memory version 2.5.19327 build 0 built on Dec 1 2022 15:38:39

  • What operating system version are you running on? ("Windows 10" is not sufficient: give the release number.) Windows version: WinVer=105;Rel=2009;Build=19042;Edition=Enterprise

  • Is your application 32-bit or 64-bit? 64 bits

DavidPerretSN avatar Dec 19 '22 15:12 DavidPerretSN