struct subnet_list *subnet_list_new(void)
{
struct subnet_list *r;
- r=safe_malloc(sizeof(*r),"subnet_list_new:list");
+ NEW(r);
r->entries=0;
r->alloc=DEFAULT_ALLOC;
- r->list=safe_malloc_ary(sizeof(*r->list),r->alloc,"subnet_list_new:data");
+ NEW_ARY(r->list,r->alloc);
return r;
}
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;
}
struct ipset *ipset_new(void)
{
struct ipset *r;
- r=safe_malloc(sizeof(*r),"ipset_new:set");
+ NEW(r);
r->l=0;
r->a=DEFAULT_ALLOC;
- r->d=safe_malloc(sizeof(*r->d)*r->a,"ipset_new:data");
+ NEW_ARY(r->d,r->a);
return r;
}
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;
}
return r;
}
-#define IPADDR_NBUFS_SHIFT 4
-#define IPADDR_NBUFS (1 << IPADDR_NBUFS_SHIFT)
#define IPADDR_BUFLEN 20
static char *ipaddr_getbuf(void)
{
- static int ipaddr_bufnum;
- static char ipaddr_bufs[IPADDR_NBUFS][IPADDR_BUFLEN];
-
- ipaddr_bufnum++;
- ipaddr_bufnum &= IPADDR_NBUFS-1;
- return ipaddr_bufs[ipaddr_bufnum];
+ SBUF_DEFINE(16, IPADDR_BUFLEN);
+ return SBUF;
}
/* The string buffer must be at least 16 bytes long */