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