]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/modify.c
Per ITS#419, don't require SLAPD_RLOOKUPS when HAVE_TCPD
[openldap] / servers / slapd / modify.c
index 705cab59db2e264474d9ed5322917a5a22800a43..2eea03e3ef3619dbe136fcac4d40dde85c350970 100644 (file)
@@ -178,6 +178,14 @@ do_modify(
                goto cleanup;
        }
 
+       /* make sure this backend recongizes critical controls */
+       rc = backend_check_controls( be, conn, op ) ;
+
+       if( rc != LDAP_SUCCESS ) {
+               send_ldap_result( conn, op, rc,
+                       NULL, NULL, NULL, NULL );
+       }
+
        if ( global_readonly || be->be_readonly ) {
                Debug( LDAP_DEBUG_ANY, "do_modify: database is read-only\n",
                       0, 0, 0 );
@@ -244,8 +252,6 @@ do_modify(
 cleanup:
        free( dn );
        free( ndn );
-       if ( modtail != NULL && *modtail != NULL )
-               free( *modtail );
        if ( modlist != NULL )
                modlist_free( modlist );
        return rc;
@@ -315,7 +321,9 @@ modlist_free(
        for ( ; ml != NULL; ml = next ) {
                next = ml->ml_next;
 
-               free( ml->ml_type );
+               if (ml->ml_type)
+                       free( ml->ml_type );
+
                if ( ml->ml_bvalues != NULL )
                        ber_bvecfree( ml->ml_bvalues );