diff options
author | Linus Nordberg <linus@nordu.net> | 2017-07-30 22:25:18 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-08-01 18:25:36 +0200 |
commit | 9179e9fa0120beec962d83a0b736953d313805ca (patch) | |
tree | 7ae3a9623900b7a67c6242bff23268d811666564 /util.c | |
parent | 3a5d0a04da17b2f7aeda9a41a36c8ec3597d20d6 (diff) |
Don't use 'out' if malloc fails.
coverity: 1449518
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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; |