@@ -2984,16 +2984,22 @@ PHP_FUNCTION(ldap_compare)
29842984/* {{{ Get the current value of various session-wide parameters */ 
29852985PHP_FUNCTION (ldap_get_option )
29862986{
2987- 	zval  * link , * retval ;
2987+ 	zval  * link   =   NULL , * retval ;
29882988	ldap_linkdata  * ld ;
29892989	zend_long  option ;
2990+ 	LDAP  * ldap ;
29902991
2991- 	if  (zend_parse_parameters (ZEND_NUM_ARGS (), "Olz " , & link , ldap_link_ce , & option , & retval ) !=  SUCCESS ) {
2992+ 	if  (zend_parse_parameters (ZEND_NUM_ARGS (), "O!lz " , & link , ldap_link_ce , & option , & retval ) !=  SUCCESS ) {
29922993		RETURN_THROWS ();
29932994	}
29942995
2995- 	ld  =  Z_LDAP_LINK_P (link );
2996- 	VERIFY_LDAP_LINK_CONNECTED (ld );
2996+ 	if  (!link ) {
2997+ 		ldap  =  NULL ;
2998+ 	} else  {
2999+ 		ld  =  Z_LDAP_LINK_P (link );
3000+ 		VERIFY_LDAP_LINK_CONNECTED (ld );
3001+ 		ldap  =  ld -> link ;
3002+ 	}
29973003
29983004	switch  (option ) {
29993005	/* options with int value */ 
@@ -3029,7 +3035,7 @@ PHP_FUNCTION(ldap_get_option)
30293035		{
30303036			int  val ;
30313037
3032- 			if  (ldap_get_option (ld -> link , option , & val )) {
3038+ 			if  (ldap_get_option (ldap , option , & val )) {
30333039				RETURN_FALSE ;
30343040			}
30353041			ZEND_TRY_ASSIGN_REF_LONG (retval , val );
@@ -3039,7 +3045,7 @@ PHP_FUNCTION(ldap_get_option)
30393045		{
30403046			struct  timeval  * timeout  =  NULL ;
30413047
3042- 			if  (ldap_get_option (ld -> link , LDAP_OPT_NETWORK_TIMEOUT , (void  * ) & timeout )) {
3048+ 			if  (ldap_get_option (ldap , LDAP_OPT_NETWORK_TIMEOUT , (void  * ) & timeout )) {
30433049				if  (timeout ) {
30443050					ldap_memfree (timeout );
30453051				}
@@ -3056,7 +3062,7 @@ PHP_FUNCTION(ldap_get_option)
30563062		{
30573063			int  timeout ;
30583064
3059- 			if  (ldap_get_option (ld -> link , LDAP_X_OPT_CONNECT_TIMEOUT , & timeout )) {
3065+ 			if  (ldap_get_option (ldap , LDAP_X_OPT_CONNECT_TIMEOUT , & timeout )) {
30603066				RETURN_FALSE ;
30613067			}
30623068			ZEND_TRY_ASSIGN_REF_LONG (retval , (timeout  / 1000 ));
@@ -3067,7 +3073,7 @@ PHP_FUNCTION(ldap_get_option)
30673073		{
30683074			struct  timeval  * timeout  =  NULL ;
30693075
3070- 			if  (ldap_get_option (ld -> link , LDAP_OPT_TIMEOUT , (void  * ) & timeout )) {
3076+ 			if  (ldap_get_option (ldap , LDAP_OPT_TIMEOUT , (void  * ) & timeout )) {
30713077				if  (timeout ) {
30723078					ldap_memfree (timeout );
30733079				}
@@ -3117,7 +3123,7 @@ PHP_FUNCTION(ldap_get_option)
31173123		{
31183124			char  * val  =  NULL ;
31193125
3120- 			if  (ldap_get_option (ld -> link , option , & val ) ||  val  ==  NULL  ||  * val  ==  '\0' ) {
3126+ 			if  (ldap_get_option (ldap , option , & val ) ||  val  ==  NULL  ||  * val  ==  '\0' ) {
31213127				if  (val ) {
31223128					ldap_memfree (val );
31233129				}
@@ -3131,13 +3137,13 @@ PHP_FUNCTION(ldap_get_option)
31313137		{
31323138			LDAPControl  * * ctrls  =  NULL ;
31333139
3134- 			if  (ldap_get_option (ld -> link , option , & ctrls ) ||  ctrls  ==  NULL ) {
3140+ 			if  (ldap_get_option (ldap , option , & ctrls ) ||  ctrls  ==  NULL ) {
31353141				if  (ctrls ) {
31363142					ldap_memfree (ctrls );
31373143				}
31383144				RETURN_FALSE ;
31393145			}
3140- 			_php_ldap_controls_to_array (ld -> link , ctrls , retval , 1 );
3146+ 			_php_ldap_controls_to_array (ldap , ctrls , retval , 1 );
31413147		} break ;
31423148/* options not implemented 
31433149	case LDAP_OPT_API_INFO: 
0 commit comments