From: Pierangelo Masarati Date: Sat, 5 Apr 2003 11:30:43 +0000 (+0000) Subject: avoid 0-sized, unused allocations X-Git-Tag: AUTOCONF_2_57~62 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4022ee7b43172d6a03bfef7d57e33acd7bd09955;p=openldap avoid 0-sized, unused allocations --- diff --git a/libraries/librewrite/subst.c b/libraries/librewrite/subst.c index 4c0bc411e0..a6d9fdbabf 100644 --- a/libraries/librewrite/subst.c +++ b/libraries/librewrite/subst.c @@ -300,10 +300,12 @@ rewrite_subst_apply( /* * Prepare room for submatch expansion */ - submatch = calloc( sizeof( struct berval ), - subst->lt_num_submatch ); - if ( submatch == NULL ) { - return REWRITE_REGEXEC_ERR; + if ( subst->lt_num_submatch > 0 ) { + submatch = calloc( sizeof( struct berval ), + subst->lt_num_submatch ); + if ( submatch == NULL ) { + return REWRITE_REGEXEC_ERR; + } } /* @@ -408,8 +410,8 @@ rewrite_subst_apply( l += subst->lt_subs_len; res = calloc( sizeof( char ), l + 1 ); if ( res == NULL ) { - free( submatch ); - return REWRITE_REGEXEC_ERR; + rc = REWRITE_REGEXEC_ERR; + goto cleanup; } /* @@ -433,7 +435,12 @@ rewrite_subst_apply( val->bv_val = res; val->bv_len = l; - + +cleanup:; + if ( submatch ) { + free( submatch ); + } + return rc; }