memory leak issue of nn_cws_create
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 @@
     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 @@
     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 @@
     if (semicolon) {
         rc = nn_iface_resolve (addr, semicolon - addr, ipv4only, &ss, &sslen);
         if (rc < 0) {
+            nn_free(self);
             return -ENODEV;
         }
     }