summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavesliu <davesliu@163.com>2017-09-18 15:09:41 +0800
committerGarrett D'Amore <garrett@damore.org>2017-10-03 15:56:14 -0700
commita589f724bbf62aae6d83dfa5109f46cc9934342d (patch)
tree498b31ec416d2161bd42d71b380d93625b89c646
parent5eb73201f7e7d5e2cd9fe0f7927077d1bc0f0c53 (diff)
downloadnanomsg-a589f724bbf62aae6d83dfa5109f46cc9934342d.tar.gz
memory leak issue of nn_cws_create
-rw-r--r--src/transports/ws/cws.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/transports/ws/cws.c b/src/transports/ws/cws.c
index d71290f..4500503 100644
--- a/src/transports/ws/cws.c
+++ b/src/transports/ws/cws.c
@@ -176,6 +176,7 @@ int nn_cws_create (struct nn_ep *ep)
if (colon != NULL) {
rc = nn_port_resolve (colon + 1, resource - colon - 1);
if (rc < 0) {
+ nn_free(self);
return -EINVAL;
}
self->remote_port = rc;
@@ -189,6 +190,7 @@ int nn_cws_create (struct nn_ep *ep)
if (nn_dns_check_hostname (hostname, self->remote_hostname_len) < 0 &&
nn_literal_resolve (hostname, self->remote_hostname_len, ipv4only,
&ss, &sslen) < 0) {
+ nn_free(self);
return -EINVAL;
}
@@ -196,6 +198,7 @@ int nn_cws_create (struct nn_ep *ep)
if (semicolon) {
rc = nn_iface_resolve (addr, semicolon - addr, ipv4only, &ss, &sslen);
if (rc < 0) {
+ nn_free(self);
return -ENODEV;
}
}