iliaa Wed, 18 Nov 2009 13:37:45 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=290913
Log: Fixed bug #50212 (crash by ldap_get_option() with LDAP_OPT_NETWORK_TIMEOUT). Bug: http://bugs.php.net/50212 (Open) SEGV by ldap_get_option() with LDAP_OPT_NETWORK_TIMEOUT Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/ldap/ldap.c U php/php-src/trunk/ext/ldap/ldap.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2009-11-18 13:24:41 UTC (rev 290912) +++ php/php-src/branches/PHP_5_3/NEWS 2009-11-18 13:37:45 UTC (rev 290913) @@ -21,6 +21,8 @@ - Fixed memory leak in extension loading when an error occurs on Windows. (Pierre) +- Fixed bug #50212 (crash by ldap_get_option() with LDAP_OPT_NETWORK_TIMEOUT). + (Ilia, shigeru_kitazaki at cybozu dot co dot jp) - Fixed bug #50140 (With default compilation option, php symbols are unresolved for nsapi). (Uwe Schindler) - Fixed bug #50174 (Incorrectly matched docComment). (Felipe) Modified: php/php-src/branches/PHP_5_3/ext/ldap/ldap.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/ldap/ldap.c 2009-11-18 13:24:41 UTC (rev 290912) +++ php/php-src/branches/PHP_5_3/ext/ldap/ldap.c 2009-11-18 13:37:45 UTC (rev 290913) @@ -1583,14 +1583,17 @@ #ifdef LDAP_OPT_NETWORK_TIMEOUT case LDAP_OPT_NETWORK_TIMEOUT: { - struct timeval *timeout; + struct timeval *timeout = NULL; if (ldap_get_option(ld->link, LDAP_OPT_NETWORK_TIMEOUT, (void *) &timeout)) { if (timeout) { ldap_memfree(timeout); } RETURN_FALSE; - } + } + if (!timeout) { + RETURN_FALSE; + } zval_dtor(retval); ZVAL_LONG(retval, timeout->tv_sec); ldap_memfree(timeout); Modified: php/php-src/trunk/ext/ldap/ldap.c =================================================================== --- php/php-src/trunk/ext/ldap/ldap.c 2009-11-18 13:24:41 UTC (rev 290912) +++ php/php-src/trunk/ext/ldap/ldap.c 2009-11-18 13:37:45 UTC (rev 290913) @@ -1619,14 +1619,17 @@ #ifdef LDAP_OPT_NETWORK_TIMEOUT case LDAP_OPT_NETWORK_TIMEOUT: { - struct timeval *timeout; + struct timeval *timeout = NULL; if (ldap_get_option(ld->link, LDAP_OPT_NETWORK_TIMEOUT, (void *) &timeout)) { if (timeout) { ldap_memfree(timeout); } RETURN_FALSE; - } + } + if (!timeout) { + RETURN_FALSE; + } zval_dtor(retval); ZVAL_LONG(retval, timeout->tv_sec); ldap_memfree(timeout);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php