sniper          Mon Oct  6 19:34:17 2003 EDT

  Modified files:              (Branch: PHP_4_3)
    /php-src    NEWS 
    /php-src/ext/ldap   ldap.c 
  Log:
  MFH: - Fixed bug #25764 (ldap_get_option() crashes with unbinded ldap link)
  
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.424 php-src/NEWS:1.1247.2.425
--- php-src/NEWS:1.1247.2.424   Fri Oct  3 21:04:53 2003
+++ php-src/NEWS        Mon Oct  6 19:34:15 2003
@@ -3,6 +3,7 @@
 ?? Oct 2003, Version 4.3.4RC2
 - Fixed multibyte regex engine to properly handle ".*" pattern under
   POSIX compatible mode. (K.Kosako <kosako at sofnec.co.jp>, Moriyoshi)
+- Fixed bug #25764 (ldap_get_option() crashes with unbinded ldap link). (Jani)
 - Fixed bug #25752 (ext/ncurses: ncurses.h instead of curses.h with BSD). (Jani)
 - Fixed bug #25745 (ctype functions fail with non-ascii characters). (Moriyoshi)
 - Fixed bug #25744 (make ZTS build of ext/sybase compile). (Ilia)
Index: php-src/ext/ldap/ldap.c
diff -u php-src/ext/ldap/ldap.c:1.130.2.7 php-src/ext/ldap/ldap.c:1.130.2.8
--- php-src/ext/ldap/ldap.c:1.130.2.7   Mon Oct  6 19:31:03 2003
+++ php-src/ext/ldap/ldap.c     Mon Oct  6 19:34:16 2003
@@ -22,7 +22,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: ldap.c,v 1.130.2.7 2003/10/06 23:31:03 sniper Exp $ */
+/* $Id: ldap.c,v 1.130.2.8 2003/10/06 23:34:16 sniper Exp $ */
 #define IS_EXT_MODULE
 
 #ifdef HAVE_CONFIG_H
@@ -286,7 +286,7 @@
 
        php_info_print_table_start();
        php_info_print_table_row(2, "LDAP Support", "enabled" );
-       php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.130.2.7 2003/10/06 
23:31:03 sniper Exp $" );
+       php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.130.2.8 2003/10/06 
23:34:16 sniper Exp $" );
 
        if (LDAPG(max_links) == -1) {
                snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links));
@@ -1613,13 +1613,20 @@
        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:

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to