com php-src: Fixed bug #5453 (WSA cleanup executes before MSHUTDOWN): NEWS main/main.c

From: Date: Sat, 06 Aug 2016 02:06:50 +0000
Subject: com php-src: Fixed bug #5453 (WSA cleanup executes before MSHUTDOWN): NEWS main/main.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-93638@lists.php.net to get a copy of this message
Commit: 7813e9de11500b51b9e30193fcdb7d09cf99a7cf Author: Kalle Sommer Nielsen <kalle@php.net> Sat, 6 Aug 2016 04:06:50 +0200 Parents: 25437255d7a932e366c13e1a2db0e3adaef83074 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7813e9de11500b51b9e30193fcdb7d09cf99a7cf Log: Fixed bug #5453 (WSA cleanup executes before MSHUTDOWN) This moves the WSACleanup() call to after zend_shutdown() in main.c, I did some testing and I could not find any issues with this. I don't expect this to cause any issues on Netware either, although untested as I do not have such an env available (do we even support Netware anymore? Last release was in 2009 and it is now discontinued) Besides the movie, then this commit also contains a fix to the check of WSAStartup() where we don't actually confirm we get the desired version of the winsock.dll (We use 2.0). Bugs: https://bugs.php.net/5453 Changed paths: M NEWS M main/main.c Diff: diff --git a/NEWS b/NEWS index 929eb33..c979e64 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2016, PHP 7.2.0alpha1 +- Core: + . Fixed bug #54535 (WSA cleanup executes before MSHUTDOWN). (Kalle) + - EXIF: . Added support for vendor specific tags for the following formats: Sony, Samsung, DJI & Panasonic. (Kalle) diff --git a/main/main.c b/main/main.c index 0a11271..248341c 100644 --- a/main/main.c +++ b/main/main.c @@ -2137,6 +2137,11 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod php_printf("\nwinsock.dll unusable. %d\n", WSAGetLastError()); return FAILURE; } + /* Check that we actually got the requested WSA version */ + if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0) { + php_printf("\nwinsock.dll unusable. Requested version: %d.%d, got %d.%d", LOBYTE(wVersionRequested), HIBYTE(wVersionRequested), LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion)); + return FAILURE; + } #endif le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0); @@ -2387,11 +2392,6 @@ void php_module_shutdown(void) ts_free_worker_threads(); #endif -#if defined(PHP_WIN32) || (defined(NETWARE) && defined(USE_WINSOCK)) - /*close winsock */ - WSACleanup(); -#endif - #ifdef PHP_WIN32 php_win32_free_rng_lock(); #endif @@ -2400,6 +2400,11 @@ void php_module_shutdown(void) zend_shutdown(); +#if defined(PHP_WIN32) || (defined(NETWARE) && defined(USE_WINSOCK)) + /*close winsock */ + WSACleanup(); +#endif + /* Destroys filter & transport registries too */ php_shutdown_stream_wrappers(module_number);

« previous php.cvs (#93638) next »