From 4022ee7b43172d6a03bfef7d57e33acd7bd09955 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Sat, 5 Apr 2003 11:30:43 +0000 Subject: [PATCH] avoid 0-sized, unused allocations --- libraries/librewrite/subst.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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; } -- 2.39.5