From 11d1adca7a2f3e398722f3160ac6a8061f18c31d Mon Sep 17 00:00:00 2001 From: Santtu Lakkala Date: Tue, 4 Feb 2025 13:09:49 +0200 Subject: Fix memory leaks Fix a memory leak on each login; the allocated OpenSSL BIOs were only freed partially. Also add a missing deallocation during server socket creation. --- xs_openssl.h | 2 +- xs_socket.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/xs_openssl.h b/xs_openssl.h index 9388691..f215bcc 100644 --- a/xs_openssl.h +++ b/xs_openssl.h @@ -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; } diff --git a/xs_socket.h b/xs_socket.h index 6e618ba..7bf5298 100644 --- a/xs_socket.h +++ b/xs_socket.h @@ -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; -- cgit v1.2.3