inspired by the 'ipaddr.py' library from Cendio Systems AB. */
#include "secnet.h"
+#include <limits.h>
+#include <assert.h>
#include <stdio.h>
+#include <string.h>
#include "ipaddr.h"
#define DEFAULT_ALLOC 2
uint32_t na;
if (l>a->alloc) {
+ assert(a->alloc < (int)(INT_MAX/sizeof(*nd))-EXTEND_ALLOC_BY);
na=a->alloc+EXTEND_ALLOC_BY;
nd=realloc(a->list,sizeof(*nd)*na);
if (!nd) {
void subnet_list_append(struct subnet_list *a, uint32_t prefix, uint32_t len)
{
struct subnet *sn;
+ assert(a->entries < INT_MAX);
subnet_list_set_len(a,a->entries+1);
sn=&a->list[a->entries-1];
sn->prefix=prefix;
uint32_t na;
if (l>a->a) {
+ assert(a->a < INT_MAX-EXTEND_ALLOC_BY);
na=a->a+EXTEND_ALLOC_BY;
nd=realloc(a->d,sizeof(*nd)*na);
if (!nd) {
return s;
}
-static struct subnet string_item_to_subnet(item_t *i, string_t desc,
+static struct subnet string_item_to_subnet(item_t *i, cstring_t desc,
bool_t *invert)
{
struct subnet s;
uint32_t a, b, c, d, n;
uint32_t match;
- string_t in;
+ cstring_t in;
*invert=False;
return s;
}
-uint32_t string_item_to_ipaddr(item_t *i, string_t desc)
+uint32_t string_item_to_ipaddr(item_t *i, cstring_t desc)
{
uint32_t a, b, c, d;
uint32_t match;
}
struct ipset *string_list_to_ipset(list_t *l, struct cloc loc,
- string_t module, string_t param)
+ cstring_t module, cstring_t param)
{
struct ipset *r, *n, *isn;
uint32_t e,i;