sniper          Sun May  8 12:06:25 2005 EDT

  Modified files:              (Branch: PHP_4_3)
    /php-src    NEWS 
    /php-src/ext/ldap   config.m4 ldap.c php_ldap.h 
  Log:
  MFH: - Fixed bug #32932 (Oracle LDAP: ldap_get_entries invalid pointer)
  # also partial sync with HEAD (just some ws/cs changes)
  
  
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.895&r2=1.1247.2.896&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.895 php-src/NEWS:1.1247.2.896
--- php-src/NEWS:1.1247.2.895   Sat May  7 10:55:39 2005
+++ php-src/NEWS        Sun May  8 12:06:24 2005
@@ -9,6 +9,7 @@
   low level IO. (Uwe)
 - Fixed bug #32974 (pcntl calls malloc() from a signal handler). (Wez)
 - Fixed bug #32936 (http redirects URLs are not checked for control chars). 
(Ilia)
+- Fixed bug #32932 (Oracle LDAP: ldap_get_entries invalid pointer). (Jani)
 - Fixed bug #32813 (parse_url() does not handle scheme-only urls properly). 
(Ilia)
 - Fixed bug #32802 (General cookie overrides more specific cookie). (Ilia)
 - Fixed bug #32730 (ext/crack.c fails to compile with cracklib-2.8.3). (Jani)
http://cvs.php.net/diff.php/php-src/ext/ldap/config.m4?r1=1.26.2.7&r2=1.26.2.8&ty=u
Index: php-src/ext/ldap/config.m4
diff -u php-src/ext/ldap/config.m4:1.26.2.7 php-src/ext/ldap/config.m4:1.26.2.8
--- php-src/ext/ldap/config.m4:1.26.2.7 Thu Dec 30 02:02:17 2004
+++ php-src/ext/ldap/config.m4  Sun May  8 12:06:24 2005
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.26.2.7 2004/12/30 07:02:17 sniper Exp $
+dnl $Id: config.m4,v 1.26.2.8 2005/05/08 16:06:24 sniper Exp $
 dnl
 
 AC_DEFUN([PHP_LDAP_CHECKS], [
@@ -99,7 +99,9 @@
   elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME; then
     PHP_ADD_LIBRARY_WITH_PATH(clntsh, $LDAP_LIBDIR, LDAP_SHARED_LIBADD)
     AC_DEFINE(HAVE_ORALDAP,1,[ ])
-
+    if test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
+      AC_DEFINE(HAVE_ORALDAP_10,1,[ ])
+    fi
   else
     AC_MSG_ERROR(Cannot find ldap libraries in $LDAP_LIBDIR.)
   fi
@@ -112,8 +114,6 @@
   _SAVE_CPPFLAGS=$CPPFLAGS
   _SAVE_LDFLAGS=$LDFLAGS
   CPPFLAGS="$CPPFLAGS -I$LDAP_INCDIR"
-  LDFLAGS="$LDFLAGS $LDAP_SHARED_LIBADD"
-
   AC_CACHE_CHECK([for 3 arg ldap_set_rebind_proc], ac_cv_3arg_setrebindproc,
   [AC_TRY_COMPILE([#include <ldap.h>], [ldap_set_rebind_proc(0,0,0)],
   ac_cv_3arg_setrebindproc=yes, ac_cv_3arg_setrebindproc=no)])
@@ -124,6 +124,16 @@
 
   dnl Solaris 2.8 claims to be 2004 API, but doesn't have
   dnl ldap_parse_reference() nor ldap_start_tls_s()
-  AC_CHECK_FUNCS([ldap_parse_reference ldap_start_tls_s])
+  AC_CHECK_FUNCS([ldap_parse_result ldap_parse_reference ldap_start_tls_s])
+  LDFLAGS=$_SAVE_LDFLAGS
+  
+  dnl
+  dnl Sanity check
+  dnl 
+  _SAVE_LDFLAGS=$LDFLAGS
+  LDFLAGS="$LDFLAGS $LDAP_SHARED_LIBADD"
+  AC_CHECK_FUNC(ldap_bind_s, [], [
+    AC_MSG_ERROR([LDAP build check failed. Please check config.log for more 
information.]) 
+  ])
   LDFLAGS=$_SAVE_LDFLAGS
 fi 
http://cvs.php.net/diff.php/php-src/ext/ldap/ldap.c?r1=1.130.2.12&r2=1.130.2.13&ty=u
Index: php-src/ext/ldap/ldap.c
diff -u php-src/ext/ldap/ldap.c:1.130.2.12 php-src/ext/ldap/ldap.c:1.130.2.13
--- php-src/ext/ldap/ldap.c:1.130.2.12  Tue Apr  5 16:32:01 2005
+++ php-src/ext/ldap/ldap.c     Sun May  8 12:06:24 2005
@@ -22,7 +22,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: ldap.c,v 1.130.2.12 2005/04/05 20:32:01 tony2001 Exp $ */
+/* $Id: ldap.c,v 1.130.2.13 2005/05/08 16:06:24 sniper Exp $ */
 #define IS_EXT_MODULE
 
 #ifdef HAVE_CONFIG_H
@@ -121,16 +121,18 @@
        PHP_FE(ldap_compare,                                                    
        NULL)
        PHP_FE(ldap_sort,                                                       
                NULL)
 
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10
+       PHP_FE(ldap_rename,                                                     
                NULL)
        PHP_FE(ldap_get_option,                 third_argument_force_ref)
        PHP_FE(ldap_set_option,                                                 
        NULL)
-       PHP_FE(ldap_parse_result,                       arg3to6of6_force_ref)
        PHP_FE(ldap_first_reference,                                            
NULL)
        PHP_FE(ldap_next_reference,                                             
        NULL)
 #ifdef HAVE_LDAP_PARSE_REFERENCE
        PHP_FE(ldap_parse_reference,    third_argument_force_ref)
 #endif
-       PHP_FE(ldap_rename,                                                     
                NULL)
+#ifdef HAVE_LDAP_PARSE_RESULT
+       PHP_FE(ldap_parse_result,                       arg3to6of6_force_ref)
+#endif
 #ifdef HAVE_LDAP_START_TLS_S
        PHP_FE(ldap_start_tls,                                                  
        NULL)
 #endif
@@ -223,7 +225,7 @@
        REGISTER_LONG_CONSTANT("LDAP_DEREF_FINDING", LDAP_DEREF_FINDING, 
CONST_PERSISTENT | CONST_CS);
        REGISTER_LONG_CONSTANT("LDAP_DEREF_ALWAYS", LDAP_DEREF_ALWAYS, 
CONST_PERSISTENT | CONST_CS);
 
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10
        /* LDAP options */
        REGISTER_LONG_CONSTANT("LDAP_OPT_DEREF", LDAP_OPT_DEREF, 
CONST_PERSISTENT | CONST_CS);
        REGISTER_LONG_CONSTANT("LDAP_OPT_SIZELIMIT", LDAP_OPT_SIZELIMIT, 
CONST_PERSISTENT | CONST_CS);
@@ -234,7 +236,9 @@
 #ifdef LDAP_OPT_RESTART
        REGISTER_LONG_CONSTANT("LDAP_OPT_RESTART", LDAP_OPT_RESTART, 
CONST_PERSISTENT | CONST_CS);
 #endif
+#ifdef LDAP_OPT_HOST_NAME
        REGISTER_LONG_CONSTANT("LDAP_OPT_HOST_NAME", LDAP_OPT_HOST_NAME, 
CONST_PERSISTENT | CONST_CS);
+#endif
        REGISTER_LONG_CONSTANT("LDAP_OPT_ERROR_STRING", LDAP_OPT_ERROR_STRING, 
CONST_PERSISTENT | CONST_CS);
 #ifdef LDAP_OPT_MATCHED_DN
        REGISTER_LONG_CONSTANT("LDAP_OPT_MATCHED_DN", LDAP_OPT_MATCHED_DN, 
CONST_PERSISTENT | CONST_CS);
@@ -284,7 +288,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.12 
2005/04/05 20:32:01 tony2001 Exp $");
+       php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.130.2.13 
2005/05/08 16:06:24 sniper Exp $");
 
        if (LDAPG(max_links) == -1) {
                snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links));
@@ -414,7 +418,7 @@
 static int _get_lderrno(LDAP *ldap)
 {
 #if !HAVE_NSLDAP
-#if LDAP_API_VERSION > 2000
+#if LDAP_API_VERSION > 2000 || HAVE_ORALDAP_10
        int lderr;
 
        /* New versions of OpenLDAP do it this way */
@@ -478,7 +482,7 @@
 {
        /* sizelimit */
        if (sizelimit > -1) {
-#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP
+#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP || HAVE_ORALDAP_10
                ldap_set_option(ldap, LDAP_OPT_SIZELIMIT, &sizelimit);
 #else
                ldap->ld_sizelimit = sizelimit; 
@@ -487,7 +491,7 @@
 
        /* timelimit */
        if (timelimit > -1) {
-#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP
+#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP || HAVE_ORALDAP_10
                ldap_set_option(ldap, LDAP_OPT_TIMELIMIT, &timelimit);
 #else
                ldap->ld_timelimit = timelimit; 
@@ -496,7 +500,7 @@
 
        /* deref */
        if (deref > -1) {
-#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP
+#if (LDAP_API_VERSION >= 2004) || HAVE_NSLDAP || HAVE_ORALDAP_10
                ldap_set_option(ldap, LDAP_OPT_DEREF, &deref);
 #else
                ldap->ld_deref = deref; 
@@ -915,12 +919,12 @@
                        add_index_string(tmp1, num_attrib, attribute, 1);
 
                        num_attrib++;
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                        ldap_memfree(attribute);
 #endif
                        attribute = ldap_next_attribute(ldap, 
ldap_result_entry, ber);
                }
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                if (ber != NULL)
                        ber_free(ber, 0);
 #endif
@@ -928,7 +932,7 @@
                add_assoc_long(tmp1, "count", num_attrib);
                dn = ldap_get_dn(ldap, ldap_result_entry);
                add_assoc_string(tmp1, "dn", dn, 1);
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(dn);
 #else
                free(dn);
@@ -968,7 +972,7 @@
                ZEND_REGISTER_RESOURCE(*berp, ber, le_ber_entry);
 
                RETVAL_STRING(attribute, 1);
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(attribute);
 #endif
        }
@@ -999,7 +1003,7 @@
                ZEND_REGISTER_RESOURCE(*berp, ber, le_ber_entry);
 
                RETVAL_STRING(attribute, 1);
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(attribute);
 #endif
        }
@@ -1046,12 +1050,12 @@
                add_index_string(return_value, num_attrib, attribute, 1);
 
                num_attrib++;
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(attribute);
 #endif
                attribute = ldap_next_attribute(ld->link, resultentry->data, 
ber);
        }
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                if (ber != NULL) {
                        ber_free(ber, 0);
                }
@@ -1159,7 +1163,7 @@
        text = ldap_get_dn(ld->link, resultentry->data);
        if (text != NULL) {
                RETVAL_STRING(text, 1);
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(text);
 #else
                free(text);
@@ -1222,7 +1226,7 @@
        
        if (ufn !=NULL) {
                RETVAL_STRING(ufn, 1);
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || WINDOWS
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 || WINDOWS
                ldap_memfree(ufn);
 #endif
        } else {
@@ -1542,8 +1546,7 @@
 }
 /* }}} */
 
-
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10
 /* {{{ proto bool ldap_get_option(resource link, int option, mixed retval)
    Get the current value of various session-wide parameters */
 PHP_FUNCTION(ldap_get_option) 
@@ -1581,8 +1584,10 @@
                        ZVAL_LONG(*retval, val);
                } break;
        /* options with string value */
-       case LDAP_OPT_HOST_NAME:
        case LDAP_OPT_ERROR_STRING:
+#ifdef LDAP_OPT_HOST_NAME
+       case LDAP_OPT_HOST_NAME:
+#endif
 #ifdef LDAP_OPT_MATCHED_DN
        case LDAP_OPT_MATCHED_DN:
 #endif
@@ -1636,7 +1641,7 @@
        opt = Z_LVAL_PP(option);
 
        switch (opt) {
-               /* options with int value */
+       /* options with int value */
        case LDAP_OPT_DEREF:
        case LDAP_OPT_SIZELIMIT:
        case LDAP_OPT_TIMELIMIT:
@@ -1653,9 +1658,11 @@
                                RETURN_FALSE;
                        }
                } break;
-               /* options with string value */
-       case LDAP_OPT_HOST_NAME:
+       /* options with string value */
        case LDAP_OPT_ERROR_STRING:
+#ifdef LDAP_OPT_HOST_NAME
+       case LDAP_OPT_HOST_NAME:
+#endif
 #ifdef LDAP_OPT_MATCHED_DN
        case LDAP_OPT_MATCHED_DN:
 #endif
@@ -1751,6 +1758,7 @@
 }
 /* }}} */
 
+#ifdef HAVE_LDAP_PARSE_RESULT
 /* {{{ proto bool ldap_parse_result(resource link, resource result, int 
errcode, string matcheddn, string errmsg, array referrals)
    Extract information from result */
 PHP_FUNCTION(ldap_parse_result) 
@@ -1816,6 +1824,7 @@
        RETURN_TRUE;
 }
 /* }}} */
+#endif
 
 /* {{{ proto resource ldap_first_reference(resource link, resource result)
    Return first reference */
@@ -1928,7 +1937,7 @@
        convert_to_string_ex(newparent);
        convert_to_boolean_ex(deleteoldrdn);
 
-#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP   
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10
        rc = ldap_rename_s(ld->link, Z_STRVAL_PP(dn), Z_STRVAL_PP(newrdn), 
Z_STRVAL_PP(newparent), Z_BVAL_PP(deleteoldrdn), NULL, NULL);
 #else
        if (Z_STRLEN_PP(newparent) != 0) {
@@ -1972,7 +1981,7 @@
 }
 /* }}} */
 #endif
-#endif /* (LDAP_API_VERSION > 2000) || HAVE_NSLDAP */
+#endif /* (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10 */
 
 #if defined(LDAP_API_FEATURE_X_OPENLDAP) && defined(HAVE_3ARG_SETREBINDPROC)
 /* {{{ _ldap_rebind_proc()
http://cvs.php.net/diff.php/php-src/ext/ldap/php_ldap.h?r1=1.25.8.1&r2=1.25.8.2&ty=u
Index: php-src/ext/ldap/php_ldap.h
diff -u php-src/ext/ldap/php_ldap.h:1.25.8.1 
php-src/ext/ldap/php_ldap.h:1.25.8.2
--- php-src/ext/ldap/php_ldap.h:1.25.8.1        Tue Dec 31 11:34:50 2002
+++ php-src/ext/ldap/php_ldap.h Sun May  8 12:06:25 2005
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_ldap.h,v 1.25.8.1 2002/12/31 16:34:50 sebastian Exp $ */
+/* $Id: php_ldap.h,v 1.25.8.2 2005/05/08 16:06:25 sniper Exp $ */
 
 #ifndef PHP_LDAP_H
 #define PHP_LDAP_H
@@ -34,59 +34,51 @@
 /* LDAP functions */
 PHP_MINIT_FUNCTION(ldap);
 PHP_MSHUTDOWN_FUNCTION(ldap);
-
 PHP_MINFO_FUNCTION(ldap);
 
 PHP_FUNCTION(ldap_connect);
-
 PHP_FUNCTION(ldap_bind);
 PHP_FUNCTION(ldap_unbind);
-
 PHP_FUNCTION(ldap_read);
 PHP_FUNCTION(ldap_list);
 PHP_FUNCTION(ldap_search);
-
 PHP_FUNCTION(ldap_free_result);
 PHP_FUNCTION(ldap_count_entries);
-
 PHP_FUNCTION(ldap_first_entry);
 PHP_FUNCTION(ldap_next_entry);
 PHP_FUNCTION(ldap_get_entries);
 PHP_FUNCTION(ldap_first_attribute);
 PHP_FUNCTION(ldap_next_attribute);
 PHP_FUNCTION(ldap_get_attributes);
-
 PHP_FUNCTION(ldap_get_values);
 PHP_FUNCTION(ldap_get_values_len);
-
 PHP_FUNCTION(ber_free);
 PHP_FUNCTION(ldap_get_dn);
 PHP_FUNCTION(ldap_explode_dn);
 PHP_FUNCTION(ldap_dn2ufn);
-
 PHP_FUNCTION(ldap_add);
 PHP_FUNCTION(ldap_delete);
-
 PHP_FUNCTION(ldap_mod_add);
 PHP_FUNCTION(ldap_mod_replace);
 PHP_FUNCTION(ldap_mod_del);
-
 PHP_FUNCTION(ldap_errno);
 PHP_FUNCTION(ldap_err2str);
 PHP_FUNCTION(ldap_error);
-
 PHP_FUNCTION(ldap_compare);
-
 PHP_FUNCTION(ldap_sort);
 
-#if ( LDAP_API_VERSION > 2000 ) || HAVE_NSLDAP
+#if (LDAP_API_VERSION > 2000) || HAVE_NSLDAP || HAVE_ORALDAP_10
 PHP_FUNCTION(ldap_get_option);
 PHP_FUNCTION(ldap_set_option);
-PHP_FUNCTION(ldap_parse_result);
 PHP_FUNCTION(ldap_first_reference);
 PHP_FUNCTION(ldap_next_reference);
-PHP_FUNCTION(ldap_parse_reference);
 PHP_FUNCTION(ldap_rename);
+#ifdef HAVE_LDAP_PARSE_RESULT
+PHP_FUNCTION(ldap_parse_result);
+#endif
+#ifdef HAVE_LDAP_PARSE_REFERENCE
+PHP_FUNCTION(ldap_parse_reference);
+#endif
 #endif
 
 #if LDAP_API_VERSION > 2000

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

Reply via email to