]> granicus.if.org Git - php/commitdiff
- Fixed bug #25764 (ldap_get_option() crashes when called with unbinded ldap link)
authorfoobar <sniper@php.net>
Mon, 6 Oct 2003 23:33:00 +0000 (23:33 +0000)
committerfoobar <sniper@php.net>
Mon, 6 Oct 2003 23:33:00 +0000 (23:33 +0000)
ext/ldap/ldap.c

index 122b17285d6c6e22d00912c78336ab58065f39e6..4d70b6d439830b5afeeeab3bdf0d1bc334e16c7d 100644 (file)
@@ -1663,13 +1663,20 @@ PHP_FUNCTION(ldap_get_option)
        case LDAP_OPT_MATCHED_DN:
 #endif
                {
-                       char *val;
+                       char *val = NULL;
+
                        if (ldap_get_option(ld->link, opt, &val)) {
                                RETURN_FALSE;
                        }
-                       zval_dtor(*retval);
-                       ZVAL_STRING(*retval, val, 1);
-                       ldap_memfree(val);
+                       if (val != NULL) {
+                               if (*val != '\0') {
+                                       zval_dtor(*retval);
+                                       ZVAL_STRING(*retval, val, 1);
+                               }
+                               ldap_memfree(val);
+                       } else {
+                               RETURN_FALSE;
+                       }
                } break;
 /* options not implemented
        case LDAP_OPT_SERVER_CONTROLS: