sniper Sun May 8 11:44:15 2005 EDT
Modified files: (Branch: PHP_5_0)
/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)
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.375&r2=1.1760.2.376&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1760.2.375 php-src/NEWS:1.1760.2.376
--- php-src/NEWS:1.1760.2.375 Sun May 8 04:47:40 2005
+++ php-src/NEWS Sun May 8 11:44:15 2005
@@ -14,6 +14,7 @@
- Fixed bug #32956 (mysql_bind_result doesn't support MYSQL_TYPE_NULL). (Georg)
- Fixed bug #32947 (Incorrect option for mysqli default password). (Georg)
- 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 #32930 (class extending DOMDocument doesn't clone properly). (Rob)
- Fixed bug #32852 (Crash with singleton and __destruct when
zend.ze1_compatibility_mode = On). (Dmitry)
http://cvs.php.net/diff.php/php-src/ext/ldap/config.m4?r1=1.34.2.1&r2=1.34.2.2&ty=u
Index: php-src/ext/ldap/config.m4
diff -u php-src/ext/ldap/config.m4:1.34.2.1 php-src/ext/ldap/config.m4:1.34.2.2
--- php-src/ext/ldap/config.m4:1.34.2.1 Thu Dec 30 02:04:10 2004
+++ php-src/ext/ldap/config.m4 Sun May 8 11:44:15 2005
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.34.2.1 2004/12/30 07:04:10 sniper Exp $
+dnl $Id: config.m4,v 1.34.2.2 2005/05/08 15:44:15 sniper Exp $
dnl
AC_DEFUN([PHP_LDAP_CHECKS], [
@@ -146,7 +146,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
@@ -169,7 +171,7 @@
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_memfree ldap_parse_result ldap_parse_reference
ldap_start_tls_s])
LDFLAGS=$_SAVE_LDFLAGS
dnl
http://cvs.php.net/diff.php/php-src/ext/ldap/ldap.c?r1=1.154.2.4&r2=1.154.2.5&ty=u
Index: php-src/ext/ldap/ldap.c
diff -u php-src/ext/ldap/ldap.c:1.154.2.4 php-src/ext/ldap/ldap.c:1.154.2.5
--- php-src/ext/ldap/ldap.c:1.154.2.4 Sun Apr 17 12:26:30 2005
+++ php-src/ext/ldap/ldap.c Sun May 8 11:44:15 2005
@@ -22,7 +22,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ldap.c,v 1.154.2.4 2005/04/17 16:26:30 sniper Exp $ */
+/* $Id: ldap.c,v 1.154.2.5 2005/05/08 15:44:15 sniper Exp $ */
#define IS_EXT_MODULE
#ifdef HAVE_CONFIG_H
@@ -137,16 +137,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_arg_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_arg_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
@@ -242,7 +244,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);
@@ -253,7 +255,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);
@@ -310,7 +314,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.154.2.4
2005/04/17 16:26:30 sniper Exp $");
+ php_info_print_table_row(2, "RCS Version", "$Id: ldap.c,v 1.154.2.5
2005/05/08 15:44:15 sniper Exp $");
if (LDAPG(max_links) == -1) {
snprintf(tmp, 31, "%ld/unlimited", LDAPG(num_links));
@@ -444,7 +448,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 */
@@ -629,7 +633,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;
@@ -638,7 +642,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;
@@ -647,7 +651,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;
@@ -1066,12 +1070,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
@@ -1079,7 +1083,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);
@@ -1119,7 +1123,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
}
@@ -1150,7 +1154,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
}
@@ -1197,12 +1201,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);
}
@@ -1310,7 +1314,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);
@@ -1373,7 +1377,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 {
@@ -1693,8 +1697,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)
@@ -1732,8 +1735,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 HAVE_LDAP_SASL
case LDAP_OPT_X_SASL_MECH:
case LDAP_OPT_X_SASL_REALM:
@@ -1811,8 +1816,10 @@
}
} 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 HAVE_LDAP_SASL
case LDAP_OPT_X_SASL_MECH:
case LDAP_OPT_X_SASL_REALM:
@@ -1914,6 +1921,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)
@@ -1979,6 +1987,7 @@
RETURN_TRUE;
}
/* }}} */
+#endif
/* {{{ proto resource ldap_first_reference(resource link, resource result)
Return first reference */
@@ -2091,7 +2100,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) {
@@ -2135,7 +2144,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.30&r2=1.30.2.1&ty=u
Index: php-src/ext/ldap/php_ldap.h
diff -u php-src/ext/ldap/php_ldap.h:1.30 php-src/ext/ldap/php_ldap.h:1.30.2.1
--- php-src/ext/ldap/php_ldap.h:1.30 Thu Jan 8 12:32:19 2004
+++ php-src/ext/ldap/php_ldap.h Sun May 8 11:44:15 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ldap.h,v 1.30 2004/01/08 17:32:19 sniper Exp $ */
+/* $Id: php_ldap.h,v 1.30.2.1 2005/05/08 15:44:15 sniper Exp $ */
#ifndef PHP_LDAP_H
#define PHP_LDAP_H
@@ -70,14 +70,18 @@
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