diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/sockets/sockets.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 9b7f0589a9..ecd8c706b4 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -354,14 +354,15 @@ static char *php_strerror(int error TSRMLS_DC) { #else { LPTSTR tmp = NULL; + buf = NULL; - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &tmp, 0, NULL); - - strlcpy(SOCKETS_G(strerror_buf), (char *) tmp, 10000); - LocalFree(tmp); + if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &tmp, 0, NULL)) { + strlcpy(SOCKETS_G(strerror_buf), (char *) tmp, 10000); + LocalFree(tmp); - buf = SOCKETS_G(strerror_buf); + buf = SOCKETS_G(strerror_buf); + } } #endif |