From 6b459abc8c54189ec3315404057923c039c1796a Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 17 Sep 2014 11:11:16 +0200 Subject: [PATCH] Fix Coverity warning in sk_interface_addr(). Copy the address directly to struct sockaddr_in or sockaddr_in6 instead of sockaddr as Coverity doesn't seem to understand the union and reports a buffer overflow. Signed-off-by: Miroslav Lichvar --- sk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sk.c b/sk.c index a9133fd..c48cf45 100644 --- a/sk.c +++ b/sk.c @@ -191,14 +191,15 @@ int sk_interface_addr(const char *name, int family, struct address *addr) switch (family) { case AF_INET: addr->len = sizeof(addr->sin); + memcpy(&addr->sin, i->ifa_addr, addr->len); break; case AF_INET6: addr->len = sizeof(addr->sin6); + memcpy(&addr->sin6, i->ifa_addr, addr->len); break; default: continue; } - memcpy(&addr->sa, i->ifa_addr, addr->len); result = 0; break; }