diff options
-rw-r--r-- | src/crywrap/crywrap.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/crywrap/crywrap.c b/src/crywrap/crywrap.c index b403fd6009..69a969b9f4 100644 --- a/src/crywrap/crywrap.c +++ b/src/crywrap/crywrap.c @@ -668,6 +668,9 @@ static int _crywrap_listen(const crywrap_config_t * config) case AF_INET: cur->ai_addrlen = sizeof(struct sockaddr_in); break; + default: + ret = -1; + goto cleanup; } cur->ai_addr = malloc(cur->ai_addrlen); @@ -678,6 +681,8 @@ static int _crywrap_listen(const crywrap_config_t * config) ret = _crywrap_bind(cur, htons(config->listen.port)); free(cur->ai_addr); + + cleanup: free(cur); return ret; @@ -711,6 +716,9 @@ _crywrap_remote_connect(const struct sockaddr_storage *addr, int port) case AF_INET: cur->ai_addrlen = sizeof(struct sockaddr_in); break; + default: + sock = -1; + goto cleanup; } cur->ai_addr = malloc(cur->ai_addrlen); @@ -740,6 +748,8 @@ _crywrap_remote_connect(const struct sockaddr_storage *addr, int port) } free(cur->ai_addr); + + cleanup: free(cur); return sock; |