diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2008-10-26 22:45:09 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2008-10-26 22:45:09 +0100 |
commit | 4847a894bf7d4852325c3f1ea4bb4890054a1f66 (patch) | |
tree | 46d0f400b9e6fc3dfaf64d7058c473e44501ddc1 /nest/a-set.c | |
parent | d51aa2819005a03e4cfb6f62333be6ccadfb3c06 (diff) |
Implementation of route reflection for BGP
Diffstat (limited to 'nest/a-set.c')
-rw-r--r-- | nest/a-set.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/nest/a-set.c b/nest/a-set.c index 44407141..69c090b7 100644 --- a/nest/a-set.c +++ b/nest/a-set.c @@ -40,10 +40,12 @@ int_set_format(struct adata *set, byte *buf, unsigned int size) struct adata * int_set_add(struct linpool *pool, struct adata *list, u32 val) { - struct adata *res = lp_alloc(pool, list->length + sizeof(struct adata) + 4); - res->length = list->length+4; + int len = list ? list->length : 0; + struct adata *res = lp_alloc(pool, len + sizeof(struct adata) + 4); + res->length = len + 4; * (u32 *) res->data = val; - memcpy((char *) res->data + 4, list->data, list->length); + if (list) + memcpy((char *) res->data + 4, list->data, list->length); return res; } |