summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/crywrap/crywrap.c10
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;