NEW etc.: Replace most calls to safe_realloc_ary
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 7 Oct 2014 19:41:20 +0000 (20:41 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 21 Oct 2014 00:07:13 +0000 (01:07 +0100)
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 <ijackson@chiark.greenend.org.uk>
ipaddr.c
secnet.c

index 8bb2efc..aa770f8 100644 (file)
--- 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;
 }
index 7aaaef5..756ab62 100644 (file)
--- 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;