Diff for /servers/slapd/back-ldap/modrdn.c between versions 1.47.2.6 and 1.47.2.7

version 1.47.2.6, 2008/02/11 23:26:46 version 1.47.2.7, 2008/04/14 18:57:13
Line 1 Line 1
 /* modrdn.c - ldap backend modrdn function */  /* modrdn.c - ldap backend modrdn function */
 /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.47.2.5 2007/08/31 23:14:02 quanah Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/back-ldap/modrdn.c,v 1.47.2.6 2008/02/11 23:26:46 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1999-2008 The OpenLDAP Foundation.   * Copyright 1999-2008 The OpenLDAP Foundation.
Line 44  ldap_back_modrdn( Line 44  ldap_back_modrdn(
         ldap_back_send_t        retrying = LDAP_BACK_RETRYING;          ldap_back_send_t        retrying = LDAP_BACK_RETRYING;
         int                     rc = LDAP_SUCCESS;          int                     rc = LDAP_SUCCESS;
         char                    *newSup = NULL;          char                    *newSup = NULL;
           struct berval           newrdn = BER_BVNULL;
   
         if ( !ldap_back_dobind( &lc, op, rs, LDAP_BACK_SENDERR ) ) {          if ( !ldap_back_dobind( &lc, op, rs, LDAP_BACK_SENDERR ) ) {
                 return rs->sr_err;                  return rs->sr_err;
Line 72  ldap_back_modrdn( Line 73  ldap_back_modrdn(
                 newSup = op->orr_newSup->bv_val;                  newSup = op->orr_newSup->bv_val;
         }          }
   
           /* NOTE: we need to copy the newRDN in case it was formed
            * from a DN by simply changing the length (ITS#5397) */
           newrdn = op->orr_newrdn;
           if ( newrdn.bv_val[ newrdn.bv_len ] != '\0' ) {
                   ber_dupbv_x( &newrdn, &op->orr_newrdn, op->o_tmpmemctx );
           }
   
 retry:  retry:
         ctrls = op->o_ctrls;          ctrls = op->o_ctrls;
         rc = ldap_back_controls_add( op, rs, lc, &ctrls );          rc = ldap_back_controls_add( op, rs, lc, &ctrls );
Line 82  retry: Line 90  retry:
         }          }
   
         rs->sr_err = ldap_rename( lc->lc_ld, op->o_req_dn.bv_val,          rs->sr_err = ldap_rename( lc->lc_ld, op->o_req_dn.bv_val,
                         op->orr_newrdn.bv_val, newSup,                          newrdn.bv_val, newSup,
                         op->orr_deleteoldrdn, ctrls, NULL, &msgid );                          op->orr_deleteoldrdn, ctrls, NULL, &msgid );
         rc = ldap_back_op_result( lc, op, rs, msgid,          rc = ldap_back_op_result( lc, op, rs, msgid,
                 li->li_timeout[ SLAP_OP_MODRDN ],                  li->li_timeout[ SLAP_OP_MODRDN ],
Line 99  retry: Line 107  retry:
 cleanup:  cleanup:
         (void)ldap_back_controls_free( op, rs, &ctrls );          (void)ldap_back_controls_free( op, rs, &ctrls );
   
           if ( newrdn.bv_val != op->orr_newrdn.bv_val ) {
                   op->o_tmpfree( newrdn.bv_val, op->o_tmpmemctx );
           }
   
         if ( lc != NULL ) {          if ( lc != NULL ) {
                 ldap_back_release_conn( li, lc );                  ldap_back_release_conn( li, lc );
         }          }

Removed from v.1.47.2.6  
changed lines
  Added in v.1.47.2.7


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org