summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2017-07-30 22:25:18 +0200
committerLinus Nordberg <linus@nordu.net>2017-08-01 18:25:36 +0200
commit9179e9fa0120beec962d83a0b736953d313805ca (patch)
tree7ae3a9623900b7a67c6242bff23268d811666564
parent3a5d0a04da17b2f7aeda9a41a36c8ec3597d20d6 (diff)
Don't use 'out' if malloc fails.
coverity: 1449518
-rw-r--r--util.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/util.c b/util.c
index ca12bbf..4cc7b8a 100644
--- a/util.c
+++ b/util.c
@@ -68,17 +68,17 @@ struct sockaddr *addr_copy(struct sockaddr *in) {
switch (in->sa_family) {
case AF_INET:
out = malloc(sizeof(struct sockaddr_in));
- if (out) {
- memset(out, 0, sizeof(struct sockaddr_in));
- ((struct sockaddr_in *)out)->sin_addr = ((struct sockaddr_in *)in)->sin_addr;
- }
+ if (out == NULL)
+ return NULL;
+ memset(out, 0, sizeof(struct sockaddr_in));
+ ((struct sockaddr_in *)out)->sin_addr = ((struct sockaddr_in *)in)->sin_addr;
break;
case AF_INET6:
out = malloc(sizeof(struct sockaddr_in6));
- if (out) {
- memset(out, 0, sizeof(struct sockaddr_in6));
- ((struct sockaddr_in6 *)out)->sin6_addr = ((struct sockaddr_in6 *)in)->sin6_addr;
- }
+ if (out == NULL)
+ return NULL;
+ memset(out, 0, sizeof(struct sockaddr_in6));
+ ((struct sockaddr_in6 *)out)->sin6_addr = ((struct sockaddr_in6 *)in)->sin6_addr;
break;
}
out->sa_family = in->sa_family;