Mailinglist Archive: opensuse-commit (1318 mails)

< Previous Next >
commit openldap2
  • From: root@xxxxxxx (h_root)
  • Date: Wed, 23 Aug 2006 20:54:25 +0200 (CEST)
  • Message-id: <20060823185425.CA8AE95173@xxxxxxxxxxxxxxx>

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@xxxxxxx
+
+- 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@xxxxxxx
+- 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@xxxxxxx
- 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<pd.used; i++) {
op->o_req_dn = pd.dn[i];
op->o_req_ndn = pd.ndn[i];
- op->o_bd->be_delete( op, &rs );
+ if ( !slapd_shutdown )
+ op->o_bd->be_delete( op, &rs );
ch_free( pd.ndn[i].bv_val );
ch_free( pd.dn[i].bv_val );
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/overlays/ppolicy.c new/openldap-2.3.27/servers/slapd/overlays/ppolicy.c
--- old/openldap-2.3.25/servers/slapd/overlays/ppolicy.c 2006-07-31 23:00:10.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/overlays/ppolicy.c 2006-08-09 03:53:48.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/ppolicy.c,v 1.31.2.23 2006/07/31 21:00:10 quanah Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/ppolicy.c,v 1.31.2.24 2006/08/09 01:53:48 quanah Exp $ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 2004-2006 The OpenLDAP Foundation.
@@ -326,6 +326,8 @@

memset( pp, 0, sizeof(PassPolicy) );

+ pp->ad = slap_schema.si_ad_userPassword;
+
/* Users can change their own password by default */
pp->pwdAllowUserChange = 1;

@@ -354,8 +356,6 @@
#if 0 /* Only worry about userPassword for now */
if ((a = attr_find( pe->e_attrs, ad_pwdAttribute )))
slap_bv2ad( &a->a_vals[0], &pp->ad, &text );
-#else
- pp->ad = slap_schema.si_ad_userPassword;
#endif

if ( ( a = attr_find( pe->e_attrs, ad_pwdMinAge ) )
@@ -411,7 +411,7 @@
return;

defaultpol:
- Debug( LDAP_DEBUG_ANY,
+ Debug( LDAP_DEBUG_TRACE,
"ppolicy_get: using default policy\n", 0, 0, 0 );
return;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/overlays/syncprov.c new/openldap-2.3.27/servers/slapd/overlays/syncprov.c
--- old/openldap-2.3.25/servers/slapd/overlays/syncprov.c 2006-07-31 20:27:42.000000000 +0200
+++ new/openldap-2.3.27/servers/slapd/overlays/syncprov.c 2006-08-15 21:50:10.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.56.2.35 2006/07/31 18:27:42 quanah Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.56.2.37 2006/08/15 19:50:10 hyc Exp $ */
/* syncprov.c - syncrepl provider */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
@@ -65,6 +65,7 @@
#define PS_IS_DETACHED 0x02
#define PS_WROTE_BASE 0x04
#define PS_FIND_BASE 0x08
+#define PS_FIX_FILTER 0x10

int s_inuse; /* reference count */
struct syncres *s_res;
@@ -911,6 +912,33 @@
return NULL;
}

+/* Start the task to play back queued psearch responses */
+static void
+syncprov_qstart( syncops *so )
+{
+ int wake=0;
+ ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
+ if ( !so->s_qtask ) {
+ so->s_qtask = ldap_pvt_runqueue_insert( &slapd_rq, RUNQ_INTERVAL,
+ syncprov_qtask, so, "syncprov_qtask",
+ so->s_op->o_conn->c_peer_name.bv_val );
+ ++so->s_inuse;
+ wake = 1;
+ } else {
+ if (!ldap_pvt_runqueue_isrunning( &slapd_rq, so->s_qtask ) &&
+ !so->s_qtask->next_sched.tv_sec ) {
+ so->s_qtask->interval.tv_sec = 0;
+ ldap_pvt_runqueue_resched( &slapd_rq, so->s_qtask, 0 );
+ so->s_qtask->interval.tv_sec = RUNQ_INTERVAL;
+ ++so->s_inuse;
+ wake = 1;
+ }
+ }
+ ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
+ if ( wake )
+ slap_wake_listener();
+}
+
/* Queue a persistent search response */
static int
syncprov_qresp( opcookie *opc, syncops *so, int mode )
@@ -949,27 +977,7 @@
so->s_flags |= PS_FIND_BASE;
}
if ( so->s_flags & PS_IS_DETACHED ) {
- int wake=0;
- ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
- if ( !so->s_qtask ) {
- so->s_qtask = ldap_pvt_runqueue_insert( &slapd_rq, RUNQ_INTERVAL,
- syncprov_qtask, so, "syncprov_qtask",
- so->s_op->o_conn->c_peer_name.bv_val );
- ++so->s_inuse;
- wake = 1;
- } else {
- if (!ldap_pvt_runqueue_isrunning( &slapd_rq, so->s_qtask ) &&
- !so->s_qtask->next_sched.tv_sec ) {
- so->s_qtask->interval.tv_sec = 0;
- ldap_pvt_runqueue_resched( &slapd_rq, so->s_qtask, 0 );
- so->s_qtask->interval.tv_sec = RUNQ_INTERVAL;
- ++so->s_inuse;
- wake = 1;
- }
- }
- ldap_pvt_thread_mutex_unlock( &slapd_rq.rq_mutex );
- if ( wake )
- slap_wake_listener();
+ syncprov_qstart( so );
}
ldap_pvt_thread_mutex_unlock( &so->s_mutex );
return LDAP_SUCCESS;
@@ -1489,7 +1497,7 @@
/* Update our context CSN */
cbuf[0] = '\0';
ldap_pvt_thread_mutex_lock( &si->si_csn_mutex );
- slap_get_commit_csn( op, &maxcsn, NULL );
+ slap_get_commit_csn( op, &maxcsn );
if ( !BER_BVISNULL( &maxcsn ) ) {
strcpy( cbuf, maxcsn.bv_val );
if ( ber_bvcmp( &maxcsn, &si->si_ctxcsn ) > 0 ) {
@@ -1785,7 +1793,15 @@
op2->ors_filterstr.bv_val = ptr;
strcpy( ptr, so->s_filterstr.bv_val );
op2->ors_filterstr.bv_len = so->s_filterstr.bv_len;
- op2->ors_filter = filter_dup( op->ors_filter, NULL );
+
+ /* Skip the AND/GE clause that we stuck on in front */
+ if ( so->s_flags & PS_FIX_FILTER ) {
+ op2->ors_filter = op->ors_filter->f_and->f_next;
+ so->s_flags ^= PS_FIX_FILTER;
+ } else {
+ op2->ors_filter = op->ors_filter;
+ }
+ op2->ors_filter = filter_dup( op2->ors_filter, NULL );
so->s_op = op2;

/* Copy any cached group ACLs individually */
@@ -1877,7 +1893,7 @@
op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );
} else {
/* It's RefreshAndPersist, transition to Persist phase */
- syncprov_sendinfo( op, rs, ( ss->ss_present && rs->sr_nentries ) ?
+ syncprov_sendinfo( op, rs, ss->ss_present ?
LDAP_TAG_SYNC_REFRESH_PRESENT : LDAP_TAG_SYNC_REFRESH_DELETE,
&cookie, 1, NULL, 0 );
op->o_tmpfree( cookie.bv_val, op->o_tmpmemctx );
@@ -1889,6 +1905,10 @@
ss->ss_so->s_flags ^= PS_IS_REFRESHING;

syncprov_detach_op( op, ss->ss_so, on );
+
+ /* If there are queued responses, fire them off */
+ if ( ss->ss_so->s_res )
+ syncprov_qstart( ss->ss_so );
ldap_pvt_thread_mutex_unlock( &ss->ss_so->s_mutex );

return LDAP_SUCCESS;
@@ -1996,7 +2016,10 @@
sl=si->si_logs;
if ( sl ) {
ldap_pvt_thread_mutex_lock( &sl->sl_mutex );
- if ( ber_bvcmp( &srs->sr_state.ctxcsn, &sl->sl_mincsn ) >= 0 ) {
+ /* Are there any log entries, and is the consumer state
+ * present in the session log?
+ */
+ if ( sl->sl_num > 0 && ber_bvcmp( &srs->sr_state.ctxcsn, &sl->sl_mincsn ) >= 0 ) {
do_present = 0;
/* mutex is unlocked in playlog */
syncprov_playlog( op, rs, sl, srs, &ctxcsn );
@@ -2050,6 +2073,8 @@
fava->f_next = op->ors_filter;
op->ors_filter = fand;
filter2bv_x( op, op->ors_filter, &op->ors_filterstr );
+ if ( sop )
+ sop->s_flags |= PS_FIX_FILTER;
}

/* Let our callback add needed info to returned entries */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/servers/slapd/proto-slap.h new/openldap-2.3.27/servers/slapd/proto-slap.h
--- old/openldap-2.3.25/servers/slapd/proto-slap.h 2006-02-17 08:38:41.000000000 +0100
+++ new/openldap-2.3.27/servers/slapd/proto-slap.h 2006-08-15 19:11:09.000000000 +0200
@@ -1,4 +1,4 @@
-/* $OpenLDAP: pkg/ldap/servers/slapd/proto-slap.h,v 1.552.2.37 2006/02/17 07:38:41 hyc Exp $ */
+/* $OpenLDAP: pkg/ldap/servers/slapd/proto-slap.h,v 1.552.2.38 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.
@@ -705,7 +705,7 @@
LDAP_SLAPD_V( const struct berval ) slap_ldapsync_bv;
LDAP_SLAPD_V( const struct berval ) slap_ldapsync_cn_bv;
LDAP_SLAPD_F (void) slap_get_commit_csn LDAP_P((
- Operation *, struct berval *maxcsn, struct berval *curcsn ));
+ Operation *, struct berval *maxcsn ));
LDAP_SLAPD_F (void) slap_rewind_commit_csn LDAP_P(( Operation * ));
LDAP_SLAPD_F (void) slap_graduate_commit_csn LDAP_P(( Operation * ));
LDAP_SLAPD_F (Entry *) slap_create_context_csn_entry LDAP_P(( Backend *, struct berval *));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/tests/data/sql-read.out new/openldap-2.3.27/tests/data/sql-read.out
--- old/openldap-2.3.25/tests/data/sql-read.out 2005-08-09 23:04:11.000000000 +0200
+++ new/openldap-2.3.27/tests/data/sql-read.out 2006-08-17 19:53:16.000000000 +0200
@@ -382,6 +382,15 @@
o: Example
dc: example

+# Testing undefined attribute in filter...
+# refldap://localhost:9012/dc=example,dc=com??sub
+
+dn: dc=example,dc=com
+objectClass: organization
+objectClass: dcObject
+o: Example
+dc: example
+
# Testing objectClass inheritance in filter...
dn: cn=Mitya Kovalev,dc=example,dc=com
objectClass: inetOrgPerson
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/openldap-2.3.25/tests/scripts/sql-test000-read new/openldap-2.3.27/tests/scripts/sql-test000-read
--- old/openldap-2.3.25/tests/scripts/sql-test000-read 2006-01-03 23:16:28.000000000 +0100
+++ new/openldap-2.3.27/tests/scripts/sql-test000-read 2006-08-17 19:53:16.000000000 +0200
@@ -1,5 +1,5 @@
#! /bin/sh
-# $OpenLDAP: pkg/ldap/tests/scripts/sql-test000-read,v 1.3.2.7 2006/01/03 22:16:28 kurt Exp $
+# $OpenLDAP: pkg/ldap/tests/scripts/sql-test000-read,v 1.3.2.8 2006/08/17 17:53:16 ando Exp $
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2006 The OpenLDAP Foundation.
@@ -326,6 +326,19 @@
exit $RC
fi

+# ITS#4604
+echo "Testing undefined attribute in filter..."
+echo "# Testing undefined attribute in filter..." >> $SEARCHOUT
+$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \
+ "(|(o=example)(foobar=x))" >> $SEARCHOUT 2>&1
+
+RC=$?
+if test $RC != 0 ; then
+ echo "ldapsearch failed ($RC)!"
+ test $KILLSERVERS != no && kill -HUP $KILLPIDS
+ exit $RC
+fi
+
echo "Testing objectClass inheritance in filter..."
echo "# Testing objectClass inheritance in filter..." >> $SEARCHOUT
$LDAPSEARCH -h $LOCALHOST -p $PORT1 -b "$BASEDN" \




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread