X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fmodrdn.c;h=ed52fc02b00d2d980a9136eb9dd3af0216764cf1;hb=3bb2a28c17f3424d4f6adf0856693faf0ad610f5;hp=986664d5f6160ce6142cedf3b5985d760043b57e;hpb=dcd35beb5fd64301bba88ec2464ba09fc3bb4597;p=openldap diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c index 986664d5f6..ed52fc02b0 100644 --- a/servers/slapd/modrdn.c +++ b/servers/slapd/modrdn.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2013 The OpenLDAP Foundation. + * Copyright 1998-2014 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -432,11 +432,22 @@ slap_modrdn2mods( Debug( LDAP_DEBUG_TRACE, "%s slap_modrdn2mods: %s: %s (new)\n", op->o_log_prefix, - rs->sr_text, + rs->sr_text, new_rdn[ a_cnt ]->la_attr.bv_val ); goto done; } + if ( !desc->ad_type->sat_equality ) { + Debug( LDAP_DEBUG_TRACE, + "%s slap_modrdn2mods: %s: %s (new)\n", + op->o_log_prefix, + rs->sr_text, + new_rdn[ a_cnt ]->la_attr.bv_val ); + rs->sr_text = "naming attribute has no equality matching rule"; + rs->sr_err = LDAP_NAMING_VIOLATION; + goto done; + } + /* Apply modification */ mod_tmp = ( Modifications * )ch_malloc( sizeof( Modifications ) ); mod_tmp->sml_desc = desc;