From b7bb8aa54525bc04ad92b369981ebd5d027244a7 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 18 Nov 2009 13:37:45 +0000 Subject: [PATCH] Fixed bug #50212 (crash by ldap_get_option() with LDAP_OPT_NETWORK_TIMEOUT). --- NEWS | 2 ++ ext/ldap/ldap.c | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 82a7fe64c73..a81b95daac5 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,8 @@ PHP NEWS - 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) diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c index 2a1b9d12f7b..e78236fde30 100644 --- a/ext/ldap/ldap.c +++ b/ext/ldap/ldap.c @@ -1583,14 +1583,17 @@ PHP_FUNCTION(ldap_get_option) #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);