From: Pierangelo Masarati Date: Sat, 9 Aug 2008 15:41:55 +0000 (+0000) Subject: handle anonymous before doing mallocs X-Git-Tag: LOCKER_IDS~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=03b105339a7091e1aa1d28bd579f738bbc266c2f;p=openldap handle anonymous before doing mallocs --- diff --git a/servers/slapd/sets.c b/servers/slapd/sets.c index d8de70044d..52f23306ef 100644 --- a/servers/slapd/sets.c +++ b/servers/slapd/sets.c @@ -726,6 +726,7 @@ slap_set_filter( SLAP_SET_GATHER gatherer, if ( len == 4 && memcmp( "this", filter, len ) == 0 ) { + assert( !BER_BVISNULL( target ) ); if ( ( SF_TOP() == (void *)'/' ) || IS_SET( SF_TOP() ) ) { SF_ERROR( syntax ); } @@ -746,15 +747,15 @@ slap_set_filter( SLAP_SET_GATHER gatherer, if ( ( SF_TOP() == (void *)'/' ) || IS_SET( SF_TOP() ) ) { SF_ERROR( syntax ); } + if ( BER_BVISNULL( user ) ) { + SF_ERROR( memory ); + } set = cp->set_op->o_tmpcalloc( 2, sizeof( struct berval ), cp->set_op->o_tmpmemctx ); if ( set == NULL ) { SF_ERROR( memory ); } ber_dupbv_x( set, user, cp->set_op->o_tmpmemctx ); - if ( BER_BVISNULL( set ) ) { - SF_ERROR( memory ); - } BER_BVZERO( &set[ 1 ] ); } else if ( SF_TOP() != (void *)'/' ) {