summaryrefslogtreecommitdiffstats
path: root/ipv6.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2013-02-15 21:45:08 +0000
committerRoy Marples <roy@marples.name>2013-02-15 21:45:08 +0000
commit10e17e3f635f816cbd8717ced563b4edfe2f5aea (patch)
tree46daf567f85c55bd574c916e711bd4f013fc69aa /ipv6.c
parentfbbb0875dd748a22dcf6d91a7d3cdaed5a90dc58 (diff)
downloaddhcpcd-10e17e3f635f816cbd8717ced563b4edfe2f5aea.tar.xz
Remove xzalloc function
Diffstat (limited to 'ipv6.c')
-rw-r--r--ipv6.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ipv6.c b/ipv6.c
index fc15883d..5c2f3503 100644
--- a/ipv6.c
+++ b/ipv6.c
@@ -370,7 +370,11 @@ make_route(const struct interface *ifp, struct ra *rap)
{
struct rt6 *r;
- r = xzalloc(sizeof(*r));
+ r = calloc(1, sizeof(*r));
+ if (r == NULL) {
+ syslog(LOG_ERR, "%s: %m", __func__);
+ return NULL;
+ }
r->ra = rap;
r->iface = ifp;
r->metric = ifp->metric;
@@ -390,6 +394,8 @@ make_prefix(const struct interface * ifp,struct ra *rap, struct ipv6_addr *addr)
return NULL;
r = make_route(ifp, rap);
+ if (r == NULL)
+ return r;
r->dest = addr->prefix;
ipv6_mask(&r->net, addr->prefix_len);
r->gate = in6addr_any;
@@ -403,6 +409,8 @@ make_router(struct ra *rap)
struct rt6 *r;
r = make_route(rap->iface, rap);
+ if (r == NULL)
+ return NULL;
r->dest = in6addr_any;
r->net = in6addr_any;
r->gate = rap->from;