Fix a memory leak on each login; the allocated OpenSSL BIOs were only freed partially. Also add a missing deallocation during server socket creation.
@@ -83,7 +83,7 @@ xs_val *xs_base64_dec(const xs_str *data, int *size)
s = xs_realloc(s, _xs_blk_size(*size + 1));
s[*size] = '\0';
- BIO_free_all(mem);
+ BIO_free_all(b64);
return s;
}
@@ -85,6 +85,8 @@ int xs_socket_server(const char *addr, const char *serv)
listen(rs, SOMAXCONN);
+ freeaddrinfo(res);
+
#else /* WITHOUT_GETADDRINFO */
struct sockaddr_in host;