From c428d724a1e615c3025918dd9be7dfac1acffbd1 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Mon, 12 Aug 2002 17:09:39 +0000 Subject: [PATCH] Sync with HEAD --- servers/slapd/back-ldap/search.c | 12 +++++++++++- servers/slapd/back-meta/search.c | 23 +++++++++++++++++------ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c index 146abc336b..45c5bd43df 100644 --- a/servers/slapd/back-ldap/search.c +++ b/servers/slapd/back-ldap/search.c @@ -406,7 +406,17 @@ ldap_send_entry( ldap_back_dn_massage( li, &bdn, &ent.e_name, 0, 0 ); #endif /* !ENABLE_REWRITE */ - dnNormalize2( NULL, &ent.e_name, &ent.e_nname ); + /* + * Note: this may fail if the target host(s) schema differs + * from the one known to the meta, and a DN with unknown + * attributes is returned. + * + * FIXME: should we log anything, or delegate to dnNormalize2? + */ + if ( dnNormalize2( NULL, &ent.e_name, &ent.e_nname ) != LDAP_SUCCESS ) { + return; + } + ent.e_id = 0; ent.e_attrs = 0; ent.e_private = 0; diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c index 7d8fc6b7f8..a670ef415c 100644 --- a/servers/slapd/back-meta/search.c +++ b/servers/slapd/back-meta/search.c @@ -117,7 +117,7 @@ meta_back_search( struct metainfo *li = ( struct metainfo * )be->be_private; struct metaconn *lc; struct metasingleconn *lsc; - struct timeval tv; + struct timeval tv = { 0, 0 }; LDAPMessage *res, *e; int count, rc = 0, *msgid, sres = LDAP_NO_SUCH_OBJECT; char *match = NULL, *err = NULL; @@ -467,11 +467,13 @@ meta_back_search( #ifdef NEW_LOGGING LDAP_LOG( BACK_META, ERR, - "meta_back_search [%d] match=\"%s\" err=\"%s\"\n", + "meta_back_search [%d] " + "match=\"%s\" err=\"%s\"\n", i, match, err ); #else /* !NEW_LOGGING */ Debug( LDAP_DEBUG_ANY, - "=>meta_back_search [%d] match=\"%s\" err=\"%s\"\n", + "=>meta_back_search [%d] " + "match=\"%s\" err=\"%s\"\n", i, match, err ); #endif /* !NEW_LOGGING */ @@ -561,9 +563,9 @@ finish:; } if ( msgid ) { - free( msgid ); + ch_free( msgid ); } - + return rc; } @@ -618,7 +620,16 @@ meta_send_entry( return; } - dnNormalize2( NULL, &ent.e_name, &ent.e_nname ); + /* + * Note: this may fail if the target host(s) schema differs + * from the one known to the meta, and a DN with unknown + * attributes is returned. + * + * FIXME: should we log anything, or delegate to dnNormalize2? + */ + if ( dnNormalize2( NULL, &ent.e_name, &ent.e_nname ) != LDAP_SUCCESS ) { + return; + } /* * cache dn -- 2.39.5