Hello community,
here is the log from the commit of package openldap2
checked in at Wed Aug 23 20:54:25 CEST 2006.
--------
--- openldap2/openldap2-client.changes 2006-08-06 21:19:13.000000000 +0200
+++ openldap2/openldap2-client.changes 2006-08-23 20:53:49.000000000 +0200
@@ -1,0 +2,15 @@
+Tue Aug 22 16:27:25 CEST 2006 - rhafer@suse.de
+
+- Updated to Version 2.3.27
+ * Fixed libldap dnssrv bug with "not present" positive statement
+ (ITS#4610)
+ * Fixed libldap dangling pointer issue (ITS#4405)
+ * Fixed slapd incorrect rebuilding of replica URI (ITS#4633)
+ * Fixed slapd DN X.509 normalization crash (ITS#4644)
+ * Fixed slapd-monitor operations order via callbacks (ITS#4631)
+ * Fixed slapo-accesslog purge task during shutdown
+ * Fixed slapo-ppolicy handling of default policy (ITS#4634)
+ * Fixed slapo-ppolicy logging verbosity when using default policy
+ * Fixed slapo-syncprov incomplete sync on restart issues (ITS#4622)
+
+-------------------------------------------------------------------
openldap2.changes: same change
Old:
----
openldap-2.3.25.tar.bz2
New:
----
openldap-2.3.27.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openldap2-client.spec ++++++
--- /var/tmp/diff_new_pack.OPGG9B/_old 2006-08-23 20:54:03.000000000 +0200
+++ /var/tmp/diff_new_pack.OPGG9B/_new 2006-08-23 20:54:03.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openldap2-client (Version 2.3.25)
+# spec file for package openldap2-client (Version 2.3.27)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -27,7 +27,7 @@
Summary: OpenLDAP2 Client Utilities
%endif
Autoreqprov: on
-Version: 2.3.25
+Version: 2.3.27
Release: 1
Source: openldap-%{version}.tar.bz2
Source1: openldap-rc.tgz
@@ -340,6 +340,18 @@
%endif
%changelog -n openldap2-client
+* Tue Aug 22 2006 - rhafer@suse.de
+- Updated to Version 2.3.27
+ * Fixed libldap dnssrv bug with "not present" positive statement
+ (ITS#4610)
+ * Fixed libldap dangling pointer issue (ITS#4405)
+ * Fixed slapd incorrect rebuilding of replica URI (ITS#4633)
+ * Fixed slapd DN X.509 normalization crash (ITS#4644)
+ * Fixed slapd-monitor operations order via callbacks (ITS#4631)
+ * Fixed slapo-accesslog purge task during shutdown
+ * Fixed slapo-ppolicy handling of default policy (ITS#4634)
+ * Fixed slapo-ppolicy logging verbosity when using default policy
+ * Fixed slapo-syncprov incomplete sync on restart issues (ITS#4622)
* Wed Aug 02 2006 - rhafer@suse.de
- Updated to Version 2.3.25
* Add libldap_r TLS concurrency workaround (ITS#4583)
openldap2.spec: same change
++++++ openldap-2.3.25.tar.bz2 -> openldap-2.3.27.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/CHANGES new/openldap-2.3.27/CHANGES
--- old/openldap-2.3.25/CHANGES 2006-08-01 01:15:00.000000000 +0200
+++ new/openldap-2.3.27/CHANGES 2006-08-19 17:09:04.000000000 +0200
@@ -1,12 +1,27 @@
OpenLDAP 2.3 Change Log
+OpenLDAP 2.3.27 Release
+ Fixed libldap dangling pointer issue (previous fix was broken) (ITS#4405)
+
+OpenLDAP 2.3.26 Release
+ Fixed libldap dnssrv bug with "not present" positive statement (ITS#4610)
+ Fixed libldap dangling pointer issue (ITS#4405)
+ Fixed slapd incorrect rebuilding of replica URI (ITS#4633)
+ Fixed slapd DN X.509 normalization crash (ITS#4644)
+ Fixed slapd-monitor operations order via callbacks (ITS#4631)
+ Fixed slapd-sql undefined filter handling (ITS#4604)
+ Fixed slapo-accesslog purge task during shutdown
+ Fixed slapo-ppolicy handling of default policy (ITS#4634)
+ Fixed slapo-ppolicy logging verbosity when using default policy
+ Fixed slapo-syncprov incomplete sync on restart issues (ITS#4622)
+
OpenLDAP 2.3.25 Release
Fixed liblber ber_bvreplace_x argument checks
Add libldap_r TLS concurrency workaround (ITS#4583)
Fixed liblutil password length bug
Add slapd glue/subordinate conflict check (ITS#4614)
Fixed slapd acl selfwrite bug (ITS#4587)
- Fixed slapd bconfig "require" inheritance and handling of "none" (ITS#4574)
+ Fixed slapd bconfig "require" and "none" handling (ITS#4574)
Fixed slapd bconfig segfault when ldapadding new schema entries
Fixed slapd syncrepl no rootdn bug (ITS#4582)
Fixed slapd syncrepl contextCSN issue (ITS#4622)
@@ -31,9 +46,9 @@
Fixed ldapsearch(1) formatting (ITS#4619)
Updated slapd.conf(5) RFC references
Updated slapd.conf(5) lastmod discussion (ITS#4613)
- Updated slapd.conf(5) "require" inheritance and handling of "none" (ITS#4574)
+ Updated slapd.conf(5) "require" and "none" handling (ITS#4574)
Added slapd.conf(5) access control note to authz-regexp discussion
- Updated slapo-syncprov(5) to clarify differences between Sync Provider and syncrepl
+ Updated slapo-syncprov(5) to clarify SyncProv and syncrepl diffs
OpenLDAP 2.3.24 Release
Fixed slapd syncrepl timestamp bug (delta-sync/cascade) (ITS#4567)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/build/version.var new/openldap-2.3.27/build/version.var
--- old/openldap-2.3.25/build/version.var 2006-08-01 15:25:48.000000000 +0200
+++ new/openldap-2.3.27/build/version.var 2006-08-19 17:09:04.000000000 +0200
@@ -1,5 +1,5 @@
#! /bin/sh
-# $OpenLDAP: pkg/ldap/build/version.var,v 1.7.2.61 2006/08/01 13:25:48 kurt Exp $
+# $OpenLDAP: pkg/ldap/build/version.var,v 1.7.2.66 2006/08/19 15:09:04 kurt Exp $
## This work is part of OpenLDAP Software http://www.openldap.org/.
##
## Copyright 1998-2006 The OpenLDAP Foundation.
@@ -15,9 +15,9 @@
ol_package=OpenLDAP
ol_major=2
ol_minor=3
-ol_patch=25
-ol_api_inc=20325
+ol_patch=27
+ol_api_inc=20327
ol_api_current=2
-ol_api_revision=13
+ol_api_revision=15
ol_api_age=2
-ol_release_date="2006/08/01"
+ol_release_date="2006/08/19"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/include/ldap.h new/openldap-2.3.27/include/ldap.h
--- old/openldap-2.3.25/include/ldap.h 2006-02-15 22:32:17.000000000 +0100
+++ new/openldap-2.3.27/include/ldap.h 2006-08-15 19:11:09.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/include/ldap.h,v 1.263.2.23 2006/02/15 21:32:17 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/include/ldap.h,v 1.263.2.24 2006/08/15 17:11:09 kurt Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1998-2006 The OpenLDAP Foundation.
@@ -948,9 +948,9 @@
LDAPControl **serverctrls,
LDAPControl **clientctrls ));
-#if LDAP_DEPRECATED
+#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_abandon LDAP_P(( /* deprecated */
+ldap_abandon LDAP_P(( /* deprecated, use ldap_abandon_ext */
LDAP *ld,
int msgid ));
#endif
@@ -978,13 +978,13 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_add LDAP_P(( /* deprecated */
+ldap_add LDAP_P(( /* deprecated, use ldap_add_ext */
LDAP *ld,
LDAP_CONST char *dn,
LDAPMod **attrs ));
LDAP_F( int )
-ldap_add_s LDAP_P(( /* deprecated */
+ldap_add_s LDAP_P(( /* deprecated, use ldap_add_ext_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAPMod **attrs ));
@@ -1057,14 +1057,14 @@
* (deprecated)
*/
LDAP_F( int )
-ldap_bind LDAP_P(( /* deprecated */
+ldap_bind LDAP_P(( /* deprecated, use ldap_sasl_bind */
LDAP *ld,
LDAP_CONST char *who,
LDAP_CONST char *passwd,
int authmethod ));
LDAP_F( int )
-ldap_bind_s LDAP_P(( /* deprecated */
+ldap_bind_s LDAP_P(( /* deprecated, use ldap_sasl_bind_s */
LDAP *ld,
LDAP_CONST char *who,
LDAP_CONST char *cred,
@@ -1074,13 +1074,13 @@
* in sbind.c:
*/
LDAP_F( int )
-ldap_simple_bind LDAP_P(( /* deprecated */
+ldap_simple_bind LDAP_P(( /* deprecated, use ldap_sasl_bind */
LDAP *ld,
LDAP_CONST char *who,
LDAP_CONST char *passwd ));
LDAP_F( int )
-ldap_simple_bind_s LDAP_P(( /* deprecated */
+ldap_simple_bind_s LDAP_P(( /* deprecated, use ldap_sasl_bind_s */
LDAP *ld,
LDAP_CONST char *who,
LDAP_CONST char *passwd ));
@@ -1088,7 +1088,7 @@
/*
* in kbind.c:
- * (deprecated)
+ * (deprecated - use SASL instead)
*/
LDAP_F( int )
ldap_kerberos_bind_s LDAP_P(( /* deprecated */
@@ -1141,14 +1141,14 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_compare LDAP_P(( /* deprecated */
+ldap_compare LDAP_P(( /* deprecated, use ldap_compare_ext */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *attr,
LDAP_CONST char *value ));
LDAP_F( int )
-ldap_compare_s LDAP_P(( /* deprecated */
+ldap_compare_s LDAP_P(( /* deprecated, use ldap_compare_ext_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *attr,
@@ -1176,12 +1176,12 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_delete LDAP_P(( /* deprecated */
+ldap_delete LDAP_P(( /* deprecated, use ldap_delete_ext */
LDAP *ld,
LDAP_CONST char *dn ));
LDAP_F( int )
-ldap_delete_s LDAP_P(( /* deprecated */
+ldap_delete_s LDAP_P(( /* deprecated, use ldap_delete_ext_s */
LDAP *ld,
LDAP_CONST char *dn ));
#endif
@@ -1207,13 +1207,13 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_result2error LDAP_P(( /* deprecated */
+ldap_result2error LDAP_P(( /* deprecated, use ldap_parse_result */
LDAP *ld,
LDAPMessage *r,
int freeit ));
LDAP_F( void )
-ldap_perror LDAP_P(( /* deprecated */
+ldap_perror LDAP_P(( /* deprecated, use ldap_err2string */
LDAP *ld,
LDAP_CONST char *s ));
#endif
@@ -1241,13 +1241,13 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_modify LDAP_P(( /* deprecated */
+ldap_modify LDAP_P(( /* deprecated, use ldap_modify_ext */
LDAP *ld,
LDAP_CONST char *dn,
LDAPMod **mods ));
LDAP_F( int )
-ldap_modify_s LDAP_P(( /* deprecated */
+ldap_modify_s LDAP_P(( /* deprecated, use ldap_modify_ext_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAPMod **mods ));
@@ -1280,7 +1280,7 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_rename2 LDAP_P(( /* deprecated */
+ldap_rename2 LDAP_P(( /* deprecated, use ldap_rename */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn,
@@ -1288,7 +1288,7 @@
int deleteoldrdn ));
LDAP_F( int )
-ldap_rename2_s LDAP_P(( /* deprecated */
+ldap_rename2_s LDAP_P(( /* deprecated, use ldap_rename_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn,
@@ -1296,26 +1296,26 @@
int deleteoldrdn ));
LDAP_F( int )
-ldap_modrdn LDAP_P(( /* deprecated */
+ldap_modrdn LDAP_P(( /* deprecated, use ldap_rename */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn ));
LDAP_F( int )
-ldap_modrdn_s LDAP_P(( /* deprecated */
+ldap_modrdn_s LDAP_P(( /* deprecated, use ldap_rename_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn ));
LDAP_F( int )
-ldap_modrdn2 LDAP_P(( /* deprecated */
+ldap_modrdn2 LDAP_P(( /* deprecated, use ldap_rename */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn,
int deleteoldrdn ));
LDAP_F( int )
-ldap_modrdn2_s LDAP_P(( /* deprecated */
+ldap_modrdn2_s LDAP_P(( /* deprecated, use ldap_rename_s */
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *newrdn,
@@ -1328,12 +1328,12 @@
*/
#if LDAP_DEPRECATED
LDAP_F( LDAP * )
-ldap_init LDAP_P(( /* deprecated */
+ldap_init LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */
LDAP_CONST char *host,
int port ));
LDAP_F( LDAP * )
-ldap_open LDAP_P(( /* deprecated */
+ldap_open LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */
LDAP_CONST char *host,
int port ));
#endif
@@ -1557,16 +1557,16 @@
char **out, unsigned oflags ));
LDAP_F( char * )
-ldap_dn2ufn LDAP_P(( /* deprecated */
+ldap_dn2ufn LDAP_P(( /* deprecated, use ldap_str2dn/dn2str */
LDAP_CONST char *dn ));
LDAP_F( char ** )
-ldap_explode_dn LDAP_P(( /* deprecated */
+ldap_explode_dn LDAP_P(( /* deprecated, ldap_str2dn */
LDAP_CONST char *dn,
int notypes ));
LDAP_F( char ** )
-ldap_explode_rdn LDAP_P(( /* deprecated */
+ldap_explode_rdn LDAP_P(( /* deprecated, ldap_str2rdn */
LDAP_CONST char *rdn,
int notypes ));
@@ -1578,13 +1578,16 @@
LDAPDN_rewrite_func *func, unsigned flags ));
LDAP_F( char * )
-ldap_dn2dcedn LDAP_P(( LDAP_CONST char *dn )); /* deprecated */
+ldap_dn2dcedn LDAP_P(( /* deprecated, ldap_str2dn/dn2str */
+ LDAP_CONST char *dn ));
LDAP_F( char * )
-ldap_dcedn2dn LDAP_P(( LDAP_CONST char *dce )); /* deprecated */
+ldap_dcedn2dn LDAP_P(( /* deprecated, ldap_str2dn/dn2str */
+ LDAP_CONST char *dce ));
LDAP_F( char * )
-ldap_dn2ad_canonical LDAP_P(( LDAP_CONST char *dn )); /* deprecated */
+ldap_dn2ad_canonical LDAP_P(( /* deprecated, ldap_str2dn/dn2str */
+ LDAP_CONST char *dn ));
LDAP_F( int )
ldap_get_dn_ber LDAP_P((
@@ -1630,17 +1633,17 @@
#if LDAP_DEPRECATED
LDAP_F( char ** )
-ldap_get_values LDAP_P(( /* deprecated */
+ldap_get_values LDAP_P(( /* deprecated, use ldap_get_values_len */
LDAP *ld,
LDAPMessage *entry,
LDAP_CONST char *target ));
LDAP_F( int )
-ldap_count_values LDAP_P(( /* deprecated */
+ldap_count_values LDAP_P(( /* deprecated, use ldap_count_values_len */
char **vals ));
LDAP_F( void )
-ldap_value_free LDAP_P(( /* deprecated */
+ldap_value_free LDAP_P(( /* deprecated, use ldap_values_free_len */
char **vals ));
#endif
@@ -1711,7 +1714,7 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_search LDAP_P(( /* deprecated */
+ldap_search LDAP_P(( /* deprecated, use ldap_search_ext */
LDAP *ld,
LDAP_CONST char *base,
int scope,
@@ -1720,7 +1723,7 @@
int attrsonly ));
LDAP_F( int )
-ldap_search_s LDAP_P(( /* deprecated */
+ldap_search_s LDAP_P(( /* deprecated, use ldap_search_ext_s */
LDAP *ld,
LDAP_CONST char *base,
int scope,
@@ -1730,7 +1733,7 @@
LDAPMessage **res ));
LDAP_F( int )
-ldap_search_st LDAP_P(( /* deprecated */
+ldap_search_st LDAP_P(( /* deprecated, use ldap_search_ext_s */
LDAP *ld,
LDAP_CONST char *base,
int scope,
@@ -1758,11 +1761,11 @@
#if LDAP_DEPRECATED
LDAP_F( int )
-ldap_unbind LDAP_P(( /* deprecated */
+ldap_unbind LDAP_P(( /* deprecated, use ldap_unbind_ext */
LDAP *ld ));
LDAP_F( int )
-ldap_unbind_s LDAP_P(( /* deprecated */
+ldap_unbind_s LDAP_P(( /* deprecated, use ldap_unbind_ext_s */
LDAP *ld ));
#endif
@@ -1812,7 +1815,7 @@
#if LDAP_DEPRECATED
/*
- * in sort.c (deprecated)
+ * in sort.c (deprecated, use custom code instead)
*/
typedef int (LDAP_SORT_AD_CMP_PROC) LDAP_P(( /* deprecated */
LDAP_CONST char *left,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/libraries/libldap/dnssrv.c new/openldap-2.3.27/libraries/libldap/dnssrv.c
--- old/openldap-2.3.25/libraries/libldap/dnssrv.c 2006-01-03 23:16:08.000000000 +0100
+++ new/openldap-2.3.27/libraries/libldap/dnssrv.c 2006-08-09 03:43:20.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/libraries/libldap/dnssrv.c,v 1.37.2.2 2006/01/03 22:16:08 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/libraries/libldap/dnssrv.c,v 1.37.2.3 2006/08/09 01:43:20 quanah Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1998-2006 The OpenLDAP Foundation.
@@ -275,8 +275,12 @@
/* weight = (p[2] << 8) | p[3]; */
port = (p[4] << 8) | p[5];
- buflen = strlen(host) + sizeof(":65355 ");
- hostlist = (char *) LDAP_REALLOC(hostlist, cur + buflen);
+ if ( port == 0 || host[ 0 ] == '\0' ) {
+ goto add_size;
+ }
+
+ buflen = strlen(host) + STRLENOF(":65355 ");
+ hostlist = (char *) LDAP_REALLOC(hostlist, cur + buflen + 1);
if (hostlist == NULL) {
rc = LDAP_NO_MEMORY;
goto out;
@@ -287,6 +291,7 @@
}
cur += sprintf(&hostlist[cur], "%s:%hd", host, port);
}
+add_size:;
p += size;
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/libraries/libldap/result.c new/openldap-2.3.27/libraries/libldap/result.c
--- old/openldap-2.3.25/libraries/libldap/result.c 2006-04-03 21:49:54.000000000 +0200
+++ new/openldap-2.3.27/libraries/libldap/result.c 2006-08-18 17:14:38.000000000 +0200
@@ -1,5 +1,5 @@
/* result.c - wait for an ldap result */
-/* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.99.2.15 2006/04/03 19:49:54 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/libraries/libldap/result.c,v 1.99.2.17 2006/08/18 15:14:38 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1998-2006 The OpenLDAP Foundation.
@@ -233,7 +233,7 @@
*tvp;
time_t start_time = 0;
time_t tmp_time;
- LDAPConn *lc, *nextlc;
+ LDAPConn *lc;
assert( ld != NULL );
assert( result != NULL );
@@ -277,8 +277,7 @@
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock( &ld->ld_conn_mutex );
#endif
- for ( lc = ld->ld_conns; lc != NULL; lc = nextlc ) {
- nextlc = lc->lconn_next;
+ for ( lc = ld->ld_conns; lc != NULL; lc = lc->lconn_next ) {
if ( ber_sockbuf_ctrl( lc->lconn_sb,
LBER_SB_OPT_DATA_READY, NULL ) ) {
#ifdef LDAP_R_COMPILE
@@ -333,10 +332,9 @@
ldap_pvt_thread_mutex_unlock( &ld->ld_req_mutex );
ldap_pvt_thread_mutex_lock( &ld->ld_conn_mutex );
#endif
- for ( lc = ld->ld_conns; rc == LDAP_MSG_X_KEEP_LOOKING && lc != NULL;
- lc = nextlc )
+ for ( lc = ld->ld_conns;
+ rc == LDAP_MSG_X_KEEP_LOOKING && lc != NULL; )
{
- nextlc = lc->lconn_next;
if ( lc->lconn_status == LDAP_CONNST_CONNECTED &&
ldap_is_read_ready( ld, lc->lconn_sb ))
{
@@ -344,11 +342,24 @@
ldap_pvt_thread_mutex_unlock( &ld->ld_conn_mutex );
#endif
rc = try_read1msg( ld, msgid, all, &lc, result );
- if ( lc == NULL ) lc = nextlc;
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_lock( &ld->ld_conn_mutex );
#endif
+ if ( lc == NULL ) {
+ /* if lc gets free()'d,
+ * there's no guarantee
+ * lc->lconn_next is still
+ * sane; better restart
+ * (ITS#4405) */
+ lc = ld->ld_conns;
+
+ /* don't get to next conn! */
+ break;
+ }
}
+
+ /* next conn */
+ lc = lc->lconn_next;
}
#ifdef LDAP_R_COMPILE
ldap_pvt_thread_mutex_unlock( &ld->ld_conn_mutex );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/DB_CONFIG new/openldap-2.3.27/servers/slapd/DB_CONFIG
--- old/openldap-2.3.25/servers/slapd/DB_CONFIG 2006-04-04 18:17:25.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/DB_CONFIG 2006-08-17 19:36:19.000000000 +0200
@@ -1,4 +1,4 @@
-# $OpenLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.1.2.2 2006/04/04 16:17:25 kurt Exp $
+# $OpenLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.1.2.3 2006/08/17 17:36:19 kurt Exp $
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See Sleepycat Berkeley DB documentation
@@ -10,6 +10,9 @@
# in particular:
# http://www.openldap.org/faq/index.cgi?file=1075
+# Note: most DB_CONFIG settings will take effect only upon rebuilding
+# the DB environment.
+
# one 0.25 GB cache
set_cachesize 0 268435456 1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-monitor/entry.c new/openldap-2.3.27/servers/slapd/back-monitor/entry.c
--- old/openldap-2.3.25/servers/slapd/back-monitor/entry.c 2006-04-05 00:34:43.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/back-monitor/entry.c 2006-08-05 16:42:04.000000000 +0200
@@ -1,5 +1,5 @@
/* entry.c - monitor backend entry handling routines */
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-monitor/entry.c,v 1.14.2.4 2006/04/04 22:34:43 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-monitor/entry.c,v 1.14.2.6 2006/08/05 14:42:04 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 2001-2006 The OpenLDAP Foundation.
@@ -42,11 +42,7 @@
mp = ( monitor_entry_t * )e->e_private;
- if ( mp->mp_info && mp->mp_info->mss_update ) {
- rc = mp->mp_info->mss_update( op, rs, e );
- }
-
- if ( rc == SLAP_CB_CONTINUE && mp->mp_cb ) {
+ if ( mp->mp_cb ) {
struct monitor_callback_t *mc;
for ( mc = mp->mp_cb; mc; mc = mc->mc_next ) {
@@ -59,6 +55,10 @@
}
}
+ if ( rc == SLAP_CB_CONTINUE && mp->mp_info && mp->mp_info->mss_update ) {
+ rc = mp->mp_info->mss_update( op, rs, e );
+ }
+
if ( rc == SLAP_CB_CONTINUE ) {
rc = LDAP_SUCCESS;
}
@@ -115,11 +115,7 @@
mp = ( monitor_entry_t * )e->e_private;
- if ( mp->mp_info && mp->mp_info->mss_modify ) {
- rc = mp->mp_info->mss_modify( op, rs, e );
- }
-
- if ( rc == SLAP_CB_CONTINUE && mp->mp_cb ) {
+ if ( mp->mp_cb ) {
struct monitor_callback_t *mc;
for ( mc = mp->mp_cb; mc; mc = mc->mc_next ) {
@@ -132,6 +128,10 @@
}
}
+ if ( rc == SLAP_CB_CONTINUE && mp->mp_info && mp->mp_info->mss_modify ) {
+ rc = mp->mp_info->mss_modify( op, rs, e );
+ }
+
if ( rc == SLAP_CB_CONTINUE ) {
rc = LDAP_SUCCESS;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/add.c new/openldap-2.3.27/servers/slapd/back-sql/add.c
--- old/openldap-2.3.25/servers/slapd/back-sql/add.c 2006-02-13 20:50:36.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/add.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/add.c,v 1.20.2.11 2006/02/13 19:50:36 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/add.c,v 1.20.2.12 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -1141,15 +1141,6 @@
}
}
- if ( get_assert( op ) &&
- ( test_filter( op, op->oq_add.rs_e, get_assertion( op ) )
- != LDAP_COMPARE_TRUE ) )
- {
- rs->sr_err = LDAP_ASSERTION_FAILED;
- e = op->ora_e;
- goto done;
- }
-
/*
* create_proc is executed; if expect_return is set, then
* an output parameter is bound, which should contain
@@ -1470,6 +1461,7 @@
SQLUSMALLINT CompletionType = SQL_ROLLBACK;
if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop ) {
+ assert( e == NULL );
CompletionType = SQL_COMMIT;
}
@@ -1514,6 +1506,10 @@
}
#endif /* SLAP_ACL_HONOR_DISCLOSE */
+ if ( op->o_noop && rs->sr_err == LDAP_SUCCESS ) {
+ rs->sr_err = LDAP_X_NO_OPERATION;
+ }
+
send_ldap_result( op, rs );
slap_graduate_commit_csn( op );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/delete.c new/openldap-2.3.27/servers/slapd/back-sql/delete.c
--- old/openldap-2.3.25/servers/slapd/back-sql/delete.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/delete.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/delete.c,v 1.15.2.7 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/delete.c,v 1.15.2.8 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -441,6 +441,7 @@
SQLUSMALLINT CompletionType = SQL_ROLLBACK;
if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop ) {
+ assert( e == NULL );
CompletionType = SQL_COMMIT;
}
@@ -464,6 +465,10 @@
}
#endif /* SLAP_ACL_HONOR_DISCLOSE */
+ if ( op->o_noop && rs->sr_err == LDAP_SUCCESS ) {
+ rs->sr_err = LDAP_X_NO_OPERATION;
+ }
+
send_ldap_result( op, rs );
Debug( LDAP_DEBUG_TRACE, "<==backsql_delete()\n", 0, 0, 0 );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/entry-id.c new/openldap-2.3.27/servers/slapd/back-sql/entry-id.c
--- old/openldap-2.3.25/servers/slapd/back-sql/entry-id.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/entry-id.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/entry-id.c,v 1.46.2.10 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/entry-id.c,v 1.46.2.11 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -90,7 +90,7 @@
{
backsql_info *bi = op->o_bd->be_private;
SQLHSTMT sth = SQL_NULL_HSTMT;
- BACKSQL_ROW_NTS row;
+ BACKSQL_ROW_NTS row = { 0 };
RETCODE rc;
int res;
struct berval realndn = BER_BVNULL;
@@ -648,6 +648,11 @@
Debug( LDAP_DEBUG_TRACE, "backsql_get_attr_vals(): "
"error preparing query: %s\n", at->bam_query, 0, 0 );
backsql_PrintErrors( bi->sql_db_env, bsi->bsi_dbh, sth, rc );
+#ifdef BACKSQL_COUNTQUERY
+ if ( append ) {
+ attr_free( attr );
+ }
+#endif /* BACKSQL_COUNTQUERY */
return 1;
}
@@ -656,6 +661,11 @@
if ( rc != SQL_SUCCESS ) {
Debug( LDAP_DEBUG_TRACE, "backsql_get_attr_vals(): "
"error binding key value parameter\n", 0, 0, 0 );
+#ifdef BACKSQL_COUNTQUERY
+ if ( append ) {
+ attr_free( attr );
+ }
+#endif /* BACKSQL_COUNTQUERY */
return 1;
}
@@ -678,6 +688,11 @@
at->bam_query, 0, 0 );
backsql_PrintErrors( bi->sql_db_env, bsi->bsi_dbh, sth, rc );
SQLFreeStmt( sth, SQL_DROP );
+#ifdef BACKSQL_COUNTQUERY
+ if ( append ) {
+ attr_free( attr );
+ }
+#endif /* BACKSQL_COUNTQUERY */
return 1;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/init.c new/openldap-2.3.27/servers/slapd/back-sql/init.c
--- old/openldap-2.3.25/servers/slapd/back-sql/init.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/init.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/init.c,v 1.47.2.11 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/init.c,v 1.47.2.12 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -36,10 +36,8 @@
static char *controls[] = {
LDAP_CONTROL_ASSERT,
LDAP_CONTROL_MANAGEDSAIT,
-#if 0 /* needs improvements */
LDAP_CONTROL_NOOP,
-#endif
-#ifdef SLAP_CONTROL_X_TREE_DELETE
+#if 0 /* SLAP_CONTROL_X_TREE_DELETE */
SLAP_CONTROL_X_TREE_DELETE,
#endif /* SLAP_CONTROL_X_TREE_DELETE */
NULL
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/modify.c new/openldap-2.3.27/servers/slapd/back-sql/modify.c
--- old/openldap-2.3.25/servers/slapd/back-sql/modify.c 2006-02-13 20:50:36.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/modify.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/modify.c,v 1.31.2.9 2006/02/13 19:50:36 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/modify.c,v 1.31.2.10 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -168,6 +168,7 @@
* Commit only if all operations succeed
*/
if ( rs->sr_err == LDAP_SUCCESS && !op->o_noop ) {
+ assert( e == NULL );
CompletionType = SQL_COMMIT;
}
@@ -190,6 +191,10 @@
}
#endif /* SLAP_ACL_HONOR_DISCLOSE */
+ if ( op->o_noop && rs->sr_err == LDAP_SUCCESS ) {
+ rs->sr_err = LDAP_X_NO_OPERATION;
+ }
+
send_ldap_result( op, rs );
slap_graduate_commit_csn( op );
@@ -205,6 +210,11 @@
op->o_tmpfree( bsi.bsi_attrs, op->o_tmpmemctx );
}
+ if ( rs->sr_ref ) {
+ ber_bvarray_free( rs->sr_ref );
+ rs->sr_ref = NULL;
+ }
+
Debug( LDAP_DEBUG_TRACE, "<==backsql_modify()\n", 0, 0, 0 );
return rs->sr_err;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/modrdn.c new/openldap-2.3.27/servers/slapd/back-sql/modrdn.c
--- old/openldap-2.3.25/servers/slapd/back-sql/modrdn.c 2006-02-13 20:50:36.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/modrdn.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/modrdn.c,v 1.14.2.8 2006/02/13 19:50:36 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/modrdn.c,v 1.14.2.9 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -533,6 +533,10 @@
SQLTransact( SQL_NULL_HENV, dbh, CompletionType );
}
+ if ( op->o_noop && rs->sr_err == LDAP_SUCCESS ) {
+ rs->sr_err = LDAP_X_NO_OPERATION;
+ }
+
send_ldap_result( op, rs );
slap_graduate_commit_csn( op );
@@ -583,6 +587,11 @@
backsql_entry_clean( op, &n );
}
+ if ( rs->sr_ref ) {
+ ber_bvarray_free( rs->sr_ref );
+ rs->sr_ref = NULL;
+ }
+
Debug( LDAP_DEBUG_TRACE, "<==backsql_modrdn()\n", 0, 0, 0 );
return rs->sr_err;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/rdbms_depend/README new/openldap-2.3.27/servers/slapd/back-sql/rdbms_depend/README
--- old/openldap-2.3.25/servers/slapd/back-sql/rdbms_depend/README 2005-06-09 18:31:13.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/back-sql/rdbms_depend/README 2006-08-17 19:53:17.000000000 +0200
@@ -120,7 +120,7 @@
3.1.5) Run the test:
[root@localhost]# cd $SOURCES/tests
-[root@localhost]# SLAPD_USE_SQL=pgsql ./run test031
+[root@localhost]# SLAPD_USE_SQL=pgsql ./run sql-test000
3.2) MySQL
@@ -149,7 +149,7 @@
3.2.5) Run the test:
[root@localhost]# cd $SOURCES/tests
-[root@localhost]# SLAPD_USE_SQL=mysql ./run test031
+[root@localhost]# SLAPD_USE_SQL=mysql ./run sql-test000
3.3) IBM db2
[n.a.]
@@ -173,7 +173,7 @@
3.3.5) Run the test:
[root@localhost]# cd $SOURCES/tests
-[root@localhost]# SLAPD_USE_SQL=ibmdb2 ./run test031
+[root@localhost]# SLAPD_USE_SQL=ibmdb2 ./run sql-test000
4) Cleanup:
The test is basically readonly; this can be performed by all RDBMSes
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/schema-map.c new/openldap-2.3.27/servers/slapd/back-sql/schema-map.c
--- old/openldap-2.3.25/servers/slapd/back-sql/schema-map.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/schema-map.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/schema-map.c,v 1.44.2.9 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/schema-map.c,v 1.44.2.10 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -319,6 +319,7 @@
const char *text = NULL;
struct berval bv;
struct berbuf bb = BB_NULL;
+ AttributeDescription *ad = NULL;
Debug( LDAP_DEBUG_TRACE,
"attributeType:\n"
@@ -336,10 +337,7 @@
/* TimesTen */
Debug( LDAP_DEBUG_TRACE, "\tsel_expr_u=\"%s\"\n",
at_row.cols[ 8 ], 0, 0 );
- at_map = (backsql_at_map_rec *)ch_calloc( 1,
- sizeof( backsql_at_map_rec ) );
- rc = slap_str2ad( at_row.cols[ 0 ],
- &at_map->bam_ad, &text );
+ rc = slap_str2ad( at_row.cols[ 0 ], &ad, &text );
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_TRACE, "backsql_oc_get_attr_mapping(): "
"attribute \"%s\" for objectClass \"%s\" "
@@ -349,6 +347,9 @@
bas->bas_rc = LDAP_CONSTRAINT_VIOLATION;
return BACKSQL_AVL_STOP;
}
+ at_map = (backsql_at_map_rec *)ch_calloc( 1,
+ sizeof( backsql_at_map_rec ) );
+ at_map->bam_ad = ad;
ber_str2bv( at_row.cols[ 1 ], 0, 1, &at_map->bam_sel_expr );
if ( at_row.value_len[ 8 ] < 0 ) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/search.c new/openldap-2.3.27/servers/slapd/back-sql/search.c
--- old/openldap-2.3.25/servers/slapd/back-sql/search.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/search.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/search.c,v 1.81.2.10 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/search.c,v 1.81.2.11 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -314,9 +314,7 @@
}
} else {
- rs->sr_ref = referral_rewrite( default_referral,
- NULL, &op->o_req_dn, scope );
- rc = rs->sr_err = LDAP_REFERRAL;
+ rs->sr_err = rc;
}
}
}
@@ -654,9 +652,35 @@
Debug( LDAP_DEBUG_TRACE, "==>backsql_process_filter()\n", 0, 0, 0 );
if ( f->f_choice == SLAPD_FILTER_COMPUTED ) {
+ struct berval flt;
+ char *msg = NULL;
+
+ switch ( f->f_result ) {
+ case LDAP_COMPARE_TRUE:
+ BER_BVSTR( &flt, "10=10" );
+ msg = "TRUE";
+ break;
+
+ case LDAP_COMPARE_FALSE:
+ BER_BVSTR( &flt, "11=0" );
+ msg = "FALSE";
+ break;
+
+ case SLAPD_COMPARE_UNDEFINED:
+ BER_BVSTR( &flt, "12=0" );
+ msg = "UNDEFINED";
+ break;
+
+ default:
+ rc = -1;
+ goto done;
+ }
+
Debug( LDAP_DEBUG_TRACE, "backsql_process_filter(): "
- "invalid filter\n", 0, 0, 0 );
- rc = -1;
+ "filter computed (%s)\n", msg, 0, 0 );
+ backsql_strfcat_x( &bsi->bsi_flt_where,
+ bsi->bsi_op->o_tmpmemctx, "b", &flt );
+ rc = 1;
goto done;
}
@@ -1517,16 +1541,16 @@
BER_BVZERO( query );
}
- free( bsi->bsi_sel.bb_val.bv_val );
+ bsi->bsi_op->o_tmpfree( bsi->bsi_sel.bb_val.bv_val, bsi->bsi_op->o_tmpmemctx );
BER_BVZERO( &bsi->bsi_sel.bb_val );
bsi->bsi_sel.bb_len = 0;
- free( bsi->bsi_from.bb_val.bv_val );
+ bsi->bsi_op->o_tmpfree( bsi->bsi_from.bb_val.bv_val, bsi->bsi_op->o_tmpmemctx );
BER_BVZERO( &bsi->bsi_from.bb_val );
bsi->bsi_from.bb_len = 0;
- free( bsi->bsi_join_where.bb_val.bv_val );
+ bsi->bsi_op->o_tmpfree( bsi->bsi_join_where.bb_val.bv_val, bsi->bsi_op->o_tmpmemctx );
BER_BVZERO( &bsi->bsi_join_where.bb_val );
bsi->bsi_join_where.bb_len = 0;
- free( bsi->bsi_flt_where.bb_val.bv_val );
+ bsi->bsi_op->o_tmpfree( bsi->bsi_flt_where.bb_val.bv_val, bsi->bsi_op->o_tmpmemctx );
BER_BVZERO( &bsi->bsi_flt_where.bb_val );
bsi->bsi_flt_where.bb_len = 0;
@@ -1620,7 +1644,7 @@
query.bv_val, 0, 0 );
rc = backsql_Prepare( bsi->bsi_dbh, &sth, query.bv_val, 0 );
- free( query.bv_val );
+ bsi->bsi_op->o_tmpfree( query.bv_val, bsi->bsi_op->o_tmpmemctx );
BER_BVZERO( &query );
if ( rc != SQL_SUCCESS ) {
Debug( LDAP_DEBUG_TRACE, "backsql_oc_get_candidates(): "
@@ -1970,7 +1994,7 @@
default:
#ifdef SLAP_ACL_HONOR_DISCLOSE
if ( !BER_BVISNULL( &base_entry.e_nname )
- && ! access_allowed( op, &base_entry,
+ && !access_allowed( op, &base_entry,
slap_schema.si_ad_entry, NULL,
ACL_DISCLOSE, NULL ) )
{
@@ -1991,6 +2015,10 @@
rs->sr_ref = NULL;
}
+ if ( !BER_BVISNULL( &base_entry.e_nname ) ) {
+ entry_clean( &base_entry );
+ }
+
goto done;
}
#ifdef SLAP_ACL_HONOR_DISCLOSE
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/back-sql/sql-wrap.c new/openldap-2.3.27/servers/slapd/back-sql/sql-wrap.c
--- old/openldap-2.3.25/servers/slapd/back-sql/sql-wrap.c 2006-01-03 23:16:24.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/back-sql/sql-wrap.c 2006-08-17 19:53:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/sql-wrap.c,v 1.28.2.6 2006/01/03 22:16:24 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/back-sql/sql-wrap.c,v 1.28.2.7 2006/08/17 17:53:17 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1999-2006 The OpenLDAP Foundation.
@@ -48,12 +48,11 @@
Debug( LDAP_DEBUG_TRACE, "Return code: %d\n", rc, 0, 0 );
for ( ; rc = SQLError( henv, hdbc, sth, state, &iSqlCode, msg,
- SQL_MAX_MESSAGE_LENGTH - 1, &len ), BACKSQL_SUCCESS( rc ); ) {
+ SQL_MAX_MESSAGE_LENGTH - 1, &len ), BACKSQL_SUCCESS( rc ); )
+ {
Debug( LDAP_DEBUG_TRACE,
- " Native error code: %d\n"
- " SQL engine state: %s\n"
- " Message: %s\n",
- (int)iSqlCode, state, msg );
+ " nativeErrCode=%d SQLengineState=%s msg=\"%s\"\n",
+ (int)iSqlCode, state, msg );
}
}
@@ -163,12 +162,26 @@
row->col_names = (BerVarray)ber_memcalloc_x( row->ncols + 1,
sizeof( struct berval ), ctx );
+ if ( !row->col_names ) goto nomem3;
row->cols = (char **)ber_memcalloc_x( row->ncols + 1,
sizeof( char * ), ctx );
+ if ( !row->cols ) goto nomem2;
row->col_prec = (UDWORD *)ber_memcalloc_x( row->ncols,
sizeof( UDWORD ), ctx );
+ if ( !row->col_prec ) goto nomem1;
row->value_len = (SQLINTEGER *)ber_memcalloc_x( row->ncols,
sizeof( SQLINTEGER ), ctx );
+ if ( !row->value_len ) {
+ ber_memfree_x( row->col_prec, ctx );
+ row->col_prec = NULL;
+nomem1: ber_memfree_x( row->cols, ctx );
+ row->cols = NULL;
+nomem2: ber_memfree_x( row->col_names, ctx );
+ row->col_names = NULL;
+nomem3: Debug( LDAP_DEBUG_ANY, "backsql_BindRowAsStrings: "
+ "out of memory\n", 0, 0, 0 );
+ return LDAP_NO_MEMORY;
+ }
for ( i = 1; i <= row->ncols; i++ ) {
rc = SQLDescribeCol( sth, (SQLSMALLINT)i, &colname[ 0 ],
(SQLUINTEGER)( sizeof( colname ) - 1 ),
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/bconfig.c new/openldap-2.3.27/servers/slapd/bconfig.c
--- old/openldap-2.3.25/servers/slapd/bconfig.c 2006-08-01 01:15:36.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/bconfig.c 2006-08-06 12:36:24.000000000 +0200
@@ -1,5 +1,5 @@
/* bconfig.c - the config backend */
-/* $OpenLDAP: pkg/ldap/servers/slapd/bconfig.c,v 1.17.2.47 2006/07/31 23:15:36 quanah Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/bconfig.c,v 1.17.2.48 2006/08/06 10:36:24 ando Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 2005-2006 The OpenLDAP Foundation.
@@ -2507,7 +2507,7 @@
}
replicauri = ch_malloc( len );
replicahost = lutil_strcopy( replicauri, ludp->lud_scheme );
- replicahost = lutil_strcopy( replicauri, "://" );
+ replicahost = lutil_strcopy( replicahost, "://" );
if (ludp->lud_port == LDAP_PORT) {
strcpy( replicahost, ludp->lud_host );
} else {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/ctxcsn.c new/openldap-2.3.27/servers/slapd/ctxcsn.c
--- old/openldap-2.3.25/servers/slapd/ctxcsn.c 2006-01-03 23:16:14.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/ctxcsn.c 2006-08-15 19:11:09.000000000 +0200
@@ -1,5 +1,5 @@
/* ctxcsn.c -- Context CSN Management Routines */
-/* $OpenLDAP: pkg/ldap/servers/slapd/ctxcsn.c,v 1.31.2.7 2006/01/03 22:16:14 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/ctxcsn.c,v 1.31.2.8 2006/08/15 17:11:09 kurt Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 2003-2006 The OpenLDAP Foundation.
@@ -32,8 +32,7 @@
void
slap_get_commit_csn(
Operation *op,
- struct berval *maxcsn,
- struct berval *curcsn
+ struct berval *maxcsn
)
{
struct slap_csn_entry *csne, *committed_csne = NULL;
@@ -46,7 +45,6 @@
LDAP_TAILQ_FOREACH( csne, op->o_bd->be_pending_csn_list, ce_csn_link ) {
if ( csne->ce_opid == op->o_opid && csne->ce_connid == op->o_connid ) {
- if ( curcsn ) *curcsn = csne->ce_csn;
csne->ce_state = SLAP_CSN_COMMIT;
break;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/dn.c new/openldap-2.3.27/servers/slapd/dn.c
--- old/openldap-2.3.25/servers/slapd/dn.c 2006-01-03 23:16:14.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/dn.c 2006-08-17 17:53:35.000000000 +0200
@@ -1,5 +1,5 @@
/* dn.c - routines for dealing with distinguished names */
-/* $OpenLDAP: pkg/ldap/servers/slapd/dn.c,v 1.170.2.8 2006/01/03 22:16:14 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/dn.c,v 1.170.2.9 2006/08/17 15:53:35 kurt Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 1998-2006 The OpenLDAP Foundation.
@@ -1410,7 +1410,8 @@
int rc = ldap_X509dn2bv( x509_name, out, LDAPDN_rewrite, 0 );
Debug( LDAP_DEBUG_TRACE,
- "dnX509Normalize: <%s>\n", out->bv_val, 0, 0 );
+ "dnX509Normalize: <%s> (%d)\n",
+ BER_BVISNULL( out ) ? "(null)" : out->bv_val, rc, 0 );
return rc;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/overlays/accesslog.c new/openldap-2.3.27/servers/slapd/overlays/accesslog.c
--- old/openldap-2.3.25/servers/slapd/overlays/accesslog.c 2006-07-28 15:01:37.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/overlays/accesslog.c 2006-08-15 07:20:54.000000000 +0200
@@ -1,5 +1,5 @@
/* accesslog.c - log operations for audit/history purposes */
-/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/accesslog.c,v 1.2.2.15 2006/07/28 13:01:37 kurt Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/accesslog.c,v 1.2.2.16 2006/08/15 05:20:54 quanah Exp $ */
/* This work is part of OpenLDAP Software http://www.openldap.org/.
*
* Copyright 2005-2006 The OpenLDAP Foundation.
@@ -493,6 +493,8 @@
if ( rs->sr_type != REP_SEARCH) return 0;
+ if ( slapd_shutdown ) return 0;
+
if ( pd->used >= pd->slots ) {
pd->slots += PURGE_INCREMENT;
pd->dn = ch_realloc( pd->dn, pd->slots * sizeof( struct berval ));
@@ -565,7 +567,8 @@
for (i=0; i