summaryrefslogtreecommitdiffstats
path: root/lib/libssl/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libssl/src')
-rw-r--r--lib/libssl/src/crypto/bio/b_sock.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libssl/src/crypto/bio/b_sock.c b/lib/libssl/src/crypto/bio/b_sock.c
index a7791b39e2e..e5f42398df6 100644
--- a/lib/libssl/src/crypto/bio/b_sock.c
+++ b/lib/libssl/src/crypto/bio/b_sock.c
@@ -535,6 +535,7 @@ BIO_accept(int sock, char **addr)
if (p) {
*p = '\0';
if (!(tmp = realloc(p, nl))) {
+ close(ret);
ret = -1;
free(p);
*addr = NULL;
@@ -546,6 +547,7 @@ BIO_accept(int sock, char **addr)
p = malloc(nl);
}
if (p == NULL) {
+ close(ret);
ret = -1;
BIOerr(BIO_F_BIO_ACCEPT, ERR_R_MALLOC_FAILURE);
goto end;
@@ -561,6 +563,7 @@ BIO_accept(int sock, char **addr)
port = ntohs(sa.from.sa_in.sin_port);
if (*addr == NULL) {
if ((p = malloc(24)) == NULL) {
+ close(ret);
ret = -1;
BIOerr(BIO_F_BIO_ACCEPT, ERR_R_MALLOC_FAILURE);
goto end;