X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fdn.c;h=e6d268ac781cf49e0a2bacbe0eed8e3656ab7b29;hb=22df3f94e404e738640b6dc90eecef7e66c90966;hp=c1c1ba52cfa83330ec3ad4bbdd880318cdf0faff;hpb=dee604c6083015262f0442097ad6514b67bc2db7;p=openldap
diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c
index c1c1ba52cf..e6d268ac78 100644
--- a/servers/slapd/dn.c
+++ b/servers/slapd/dn.c
@@ -1,8 +1,27 @@
/* dn.c - routines for dealing with distinguished names */
/* $OpenLDAP$ */
-/*
- * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software .
+ *
+ * Copyright 1998-2004 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * .
+ */
+/* Portions Copyright (c) 1995 Regents of the University of Michigan.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of Michigan at Ann Arbor. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
*/
#include "portable.h"
@@ -240,7 +259,7 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
slap_mr_normalize_func *normf = NULL;
slap_syntax_transform_func *transf = NULL;
MatchingRule *mr = NULL;
- struct berval bv = { 0, NULL };
+ struct berval bv = BER_BVNULL;
int do_sort = 0;
assert( ava );
@@ -314,7 +333,7 @@ LDAPDN_rewrite( LDAPDN dn, unsigned flags, void *ctx )
* if value is empty, use empty_bv
*/
rc = ( *normf )(
- 0,
+ SLAP_MR_VALUE_OF_ASSERTION_SYNTAX,
ad->ad_type->sat_syntax,
mr,
ava->la_value.bv_len
@@ -824,13 +843,13 @@ build_new_dn( struct berval * new_dn,
{
char *ptr;
- if ( parent_dn == NULL ) {
+ if ( parent_dn == NULL || parent_dn->bv_len == 0 ) {
ber_dupbv( new_dn, newrdn );
return;
}
new_dn->bv_len = parent_dn->bv_len + newrdn->bv_len + 1;
- new_dn->bv_val = (char *) sl_malloc( new_dn->bv_len + 1, memctx );
+ new_dn->bv_val = (char *) slap_sl_malloc( new_dn->bv_len + 1, memctx );
ptr = lutil_strcopy( new_dn->bv_val, newrdn->bv_val );
*ptr++ = ',';
@@ -899,6 +918,7 @@ int
dnX509peerNormalize( void *ssl, struct berval *dn )
{
- return ldap_pvt_tls_get_peer_dn( ssl, dn, (LDAPDN_rewrite_dummy *)LDAPDN_rewrite, 0 );
+ return ldap_pvt_tls_get_peer_dn( ssl, dn,
+ (LDAPDN_rewrite_dummy *)LDAPDN_rewrite, 0 );
}
#endif