X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldbm%2Fcompare.c;h=fc6e17144419ad430ae5ac6ac9e3b9f5e31e4d36;hb=573e279d8769b0b74cdf63c21653f261cb741f25;hp=d17c5da88a9dca191f51405c1b9156816b0842d0;hpb=3952bc8e95a2b21aced14f890028f12d00e191fa;p=openldap diff --git a/servers/slapd/back-ldbm/compare.c b/servers/slapd/back-ldbm/compare.c index d17c5da88a..fc6e171444 100644 --- a/servers/slapd/back-ldbm/compare.c +++ b/servers/slapd/back-ldbm/compare.c @@ -29,12 +29,15 @@ ldbm_back_compare( /* get entry with reader lock */ if ( (e = dn2entry_r( be, dn, &matched )) == NULL ) { send_ldap_result( conn, op, LDAP_NO_SUCH_OBJECT, matched, "" ); + + if(matched == NULL) free(matched); return( 1 ); } /* check for deleted */ - if ( ! access_allowed( be, conn, op, e, ava->ava_type, &ava->ava_value, - op->o_dn, ACL_COMPARE ) ) { + if ( ! access_allowed( be, conn, op, e, + ava->ava_type, &ava->ava_value, ACL_COMPARE ) ) + { send_ldap_result( conn, op, LDAP_INSUFFICIENT_ACCESS, "", "" ); rc = 1; goto return_results;