From 485540bbb48a7877a457f125c6a8e0b5c97e4e47 Mon Sep 17 00:00:00 2001 From: Andrew Nelless Date: Fri, 12 May 2017 00:10:16 +0100 Subject: [PATCH] #6037 socket accept() failure could lead to NULL ptr dereference --- src/lib/arch/win32/ArchNetworkWinsock.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/arch/win32/ArchNetworkWinsock.cpp b/src/lib/arch/win32/ArchNetworkWinsock.cpp index 24310402..65a5b320 100644 --- a/src/lib/arch/win32/ArchNetworkWinsock.cpp +++ b/src/lib/arch/win32/ArchNetworkWinsock.cpp @@ -311,7 +311,7 @@ ArchNetworkWinsock::listenOnSocket(ArchSocket s) } ArchSocket -ArchNetworkWinsock::acceptSocket(ArchSocket s, ArchNetAddress* addr) +ArchNetworkWinsock::acceptSocket(ArchSocket s, ArchNetAddress* const addr) { assert(s != NULL); @@ -325,7 +325,9 @@ ArchNetworkWinsock::acceptSocket(ArchSocket s, ArchNetAddress* addr) int err = getsockerror_winsock(); delete socket; free(tmp); - *addr = NULL; + if (addr) { + *addr = NULL; + } if (err == WSAEWOULDBLOCK) { return NULL; } @@ -339,7 +341,9 @@ ArchNetworkWinsock::acceptSocket(ArchSocket s, ArchNetAddress* addr) close_winsock(fd); delete socket; free(tmp); - *addr = NULL; + if (addr) { + *addr = NULL; + } throw; }