From: Ian Jackson Date: Tue, 7 Oct 2014 19:41:20 +0000 (+0100) Subject: NEW etc.: Replace most calls to safe_realloc_ary X-Git-Tag: base.ipv6-polypath-fixes.v1~6 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=2f9fa75f101edc385b91a074f3dc21b8ec41bf79 NEW etc.: Replace most calls to safe_realloc_ary Replace with REALLOC_ARY whenever the array object size is not 1 In subnet_list_set_len and ipset_set_len we abolish the unnecessary temporary variable `nd'. In subnet_list_set_len we also simplify the assert integer overflow condition (the division is not needed because REALLOC_ARY and hence safe_malloc_ary will check for potential multiplication overflow). Signed-off-by: Ian Jackson --- diff --git a/ipaddr.c b/ipaddr.c index 8bb2efc..aa770f8 100644 --- a/ipaddr.c +++ b/ipaddr.c @@ -30,15 +30,13 @@ void subnet_list_free(struct subnet_list *a) static void subnet_list_set_len(struct subnet_list *a, int32_t l) { - struct subnet *nd; int32_t na; if (l>a->alloc) { - assert(a->alloc < (int)(INT_MAX/sizeof(*nd))-EXTEND_ALLOC_BY); + assert(a->alloc < INT_MAX-EXTEND_ALLOC_BY); na=a->alloc+EXTEND_ALLOC_BY; - nd=safe_realloc_ary(a->list,sizeof(*nd),na,"subnet_list_set_len"); + REALLOC_ARY(a->list,na); a->alloc=na; - a->list=nd; } a->entries=l; } @@ -112,15 +110,13 @@ struct ipset *ipset_from_subnet_list(struct subnet_list *l) static void ipset_set_len(struct ipset *a, int32_t l) { - struct iprange *nd; int32_t na; if (l>a->a) { assert(a->a < INT_MAX-EXTEND_ALLOC_BY); na=a->a+EXTEND_ALLOC_BY; - nd=safe_realloc_ary(a->d,sizeof(*nd),na,"ipset_set_len"); + REALLOC_ARY(a->d,na); a->a=na; - a->d=nd; } a->l=l; } diff --git a/secnet.c b/secnet.c index 7aaaef5..756ab62 100644 --- a/secnet.c +++ b/secnet.c @@ -331,7 +331,7 @@ static void run(void) if (shortfall) { allocdfds *= 2; allocdfds += shortfall; - fds=safe_realloc_ary(fds,sizeof(*fds),allocdfds, "run"); + REALLOC_ARY(fds,allocdfds); } shortfall=0; idx=0;