From 72a38b55e38407aa6c6b1cd32f848198ceee1287 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 9 Aug 2017 21:58:12 +0200 Subject: IPv6: in46_addr: OSMO_ASSERT() in case of unsupported calls There's a bit of trickery with the ip_pool and it's "lengty=8" IPv6 prefix handling, let's make sure we don't accidentially call any support functions with addresses of wrong length. Change-Id: I444c190bdcd18780344e1f0dad4faf3bcf9da5a5 --- lib/in46_addr.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/in46_addr.c b/lib/in46_addr.c index 1785377..8f5cc09 100644 --- a/lib/in46_addr.c +++ b/lib/in46_addr.c @@ -11,6 +11,8 @@ #include "../lib/in46_addr.h" +#include + #include #include #include @@ -29,6 +31,7 @@ int in46a_to_af(const struct in46_addr *in) case 16: return AF_INET6; default: + OSMO_ASSERT(0); return -1; } } @@ -49,6 +52,7 @@ int in46a_to_sas(struct sockaddr_storage *out, const struct in46_addr *in) sin6->sin6_addr = in->v6; break; default: + OSMO_ASSERT(0); return -1; } @@ -161,6 +165,7 @@ int in46a_within_mask(const struct in46_addr *addr, const struct in46_addr *net, create_ipv6_netmask(&netmask6, prefixlen); return ipv6_within_mask(&addr->v6, &net->v6, &netmask6); default: + OSMO_ASSERT(0); return 0; } } @@ -184,6 +189,7 @@ int in46a_to_eua(const struct in46_addr *src, struct ul66_t *eua) memcpy(&eua->v[2], &src->v6, 16); /* Copy a 16 byte address */ break; default: + OSMO_ASSERT(0); return -1; } return 0; -- cgit v1.2.3