com php-src: Fixed bug #5453 (WSA cleanup executes before MSHUTDOWN): NEWS main/main.c
| From: | Kalle Sommer Nielsen | 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);