This commit is contained in:
Kurt Zeilenga 2004-05-19 19:39:40 +00:00
parent 420bd2ff40
commit a3df8a82b4
3 changed files with 55 additions and 51 deletions

View File

@ -38,13 +38,10 @@ void
ava_free(
Operation *op,
AttributeAssertion *ava,
int freeit
)
int freeit )
{
op->o_tmpfree( ava->aa_value.bv_val, op->o_tmpmemctx );
if ( freeit ) {
op->o_tmpfree( (char *) ava, op->o_tmpmemctx );
}
if ( freeit ) op->o_tmpfree( (char *) ava, op->o_tmpmemctx );
}
int
@ -107,6 +104,5 @@ get_ava(
}
*ava = aa;
return LDAP_SUCCESS;
}

View File

@ -776,7 +776,8 @@ filter2bv_x( Operation *op, Filter *f, struct berval *fstr )
filter_escape_value_x( &f->f_sub_initial, &tmp, op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-2], tmp.bv_len+3,
/* "(attr=" */ "%s*)",
@ -788,10 +789,12 @@ filter2bv_x( Operation *op, Filter *f, struct berval *fstr )
if ( f->f_sub_any != NULL ) {
for ( i = 0; f->f_sub_any[i].bv_val != NULL; i++ ) {
len = fstr->bv_len;
filter_escape_value_x( &f->f_sub_any[i], &tmp, op->o_tmpmemctx );
filter_escape_value_x( &f->f_sub_any[i],
&tmp, op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len + 1;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
/* "(attr=[init]*[any*]" */ "%s*)",
@ -806,7 +809,8 @@ filter2bv_x( Operation *op, Filter *f, struct berval *fstr )
filter_escape_value_x( &f->f_sub_final, &tmp, op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
/* "(attr=[init*][any*]" */ "%s)",
@ -842,7 +846,8 @@ filter2bv_x( Operation *op, Filter *f, struct berval *fstr )
filter2bv_x( op, p, &tmp );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len + 2,
/*"("*/ "%s)", tmp.bv_val );
@ -1263,8 +1268,8 @@ vrFilter_free( Operation *op, ValuesReturnFilter *vrf )
default:
#ifdef NEW_LOGGING
LDAP_LOG( FILTER, ERR,
"filter_free: unknown filter type %lu\n", vrf->vrf_choice, 0, 0 );
LDAP_LOG( FILTER, ERR, "filter_free: unknown filter type %lu\n",
vrf->vrf_choice, 0, 0 );
#else
Debug( LDAP_DEBUG_ANY, "filter_free: unknown filter type=%lu\n",
vrf->vrf_choice, 0, 0 );
@ -1300,7 +1305,8 @@ vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr )
simple_vrFilter2bv( op, p, &tmp );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len + 2,
/*"("*/ "%s)", tmp.bv_val );
@ -1316,7 +1322,8 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
ber_len_t len;
if ( vrf == NULL ) {
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr, op->o_tmpmemctx );
ber_str2bv_x( "No filter!", sizeof("No filter!")-1, 1, fstr,
op->o_tmpmemctx );
return;
}
@ -1390,7 +1397,8 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
filter_escape_value_x( &vrf->vrf_sub_initial, &tmp, op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-2], tmp.bv_len+3,
/* "(attr=" */ "%s*)",
@ -1403,10 +1411,12 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
int i;
for ( i = 0; vrf->vrf_sub_any[i].bv_val != NULL; i++ ) {
len = fstr->bv_len;
filter_escape_value_x( &vrf->vrf_sub_any[i], &tmp, op->o_tmpmemctx );
filter_escape_value_x( &vrf->vrf_sub_any[i], &tmp,
op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len + 1;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val,
fstr->bv_len + 1, op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
/* "(attr=[init]*[any*]" */ "%s*)",
@ -1421,7 +1431,8 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
filter_escape_value_x( &vrf->vrf_sub_final, &tmp, op->o_tmpmemctx );
fstr->bv_len += tmp.bv_len;
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1, op->o_tmpmemctx );
fstr->bv_val = op->o_tmprealloc( fstr->bv_val, fstr->bv_len + 1,
op->o_tmpmemctx );
snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
/* "(attr=[init*][any*]" */ "%s)",
@ -1454,7 +1465,8 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
fstr->bv_len = ad.bv_len +
( vrf->vrf_mr_dnattrs ? sizeof(":dn")-1 : 0 ) +
( vrf->vrf_mr_rule_text.bv_len ? vrf->vrf_mr_rule_text.bv_len+1 : 0 ) +
( vrf->vrf_mr_rule_text.bv_len
? vrf->vrf_mr_rule_text.bv_len+1 : 0 ) +
tmp.bv_len + ( sizeof("(:=)") - 1 );
fstr->bv_val = op->o_tmpalloc( fstr->bv_len + 1, op->o_tmpmemctx );
@ -1472,12 +1484,12 @@ simple_vrFilter2bv( Operation *op, ValuesReturnFilter *vrf, struct berval *fstr
ber_str2bv_x(
vrf->vrf_result == LDAP_COMPARE_FALSE ? "(?=false)" :
vrf->vrf_result == LDAP_COMPARE_TRUE ? "(?=true)" :
vrf->vrf_result == SLAPD_COMPARE_UNDEFINED ? "(?=undefined)" :
"(?=error)",
vrf->vrf_result == SLAPD_COMPARE_UNDEFINED
? "(?=undefined)" : "(?=error)",
vrf->vrf_result == LDAP_COMPARE_FALSE ? sizeof("(?=false)")-1 :
vrf->vrf_result == LDAP_COMPARE_TRUE ? sizeof("(?=true)")-1 :
vrf->vrf_result == SLAPD_COMPARE_UNDEFINED ? sizeof("(?=undefined)")-1 :
sizeof("(?=error)")-1,
vrf->vrf_result == SLAPD_COMPARE_UNDEFINED
? sizeof("(?=undefined)")-1 : sizeof("(?=error)")-1,
1, fstr, op->o_tmpmemctx );
break;

View File

@ -27,14 +27,11 @@ void
mra_free(
Operation *op,
MatchingRuleAssertion *mra,
int freeit
)
int freeit )
{
/* op->o_tmpfree( mra->ma_value.bv_val, op->o_tmpmemctx ); */
ch_free( mra->ma_value.bv_val );
if ( freeit ) {
op->o_tmpfree( (char *) mra, op->o_tmpmemctx );
}
if ( freeit ) op->o_tmpfree( (char *) mra, op->o_tmpmemctx );
}
int
@ -42,8 +39,7 @@ get_mra(
Operation *op,
BerElement *ber,
MatchingRuleAssertion **mra,
const char **text
)
const char **text )
{
int rc;
ber_tag_t tag, rtag;