summaryrefslogtreecommitdiff
path: root/src/lib/libssl/t1_lib.c
diff options
context:
space:
mode:
authormiod <>2014-05-26 20:11:27 +0000
committermiod <>2014-05-26 20:11:27 +0000
commit6faf798d1d3380d029805b0d46c838a5d4d15405 (patch)
treefd119846d73cdf02b19e9c30bbcd3dc5ca4f7da4 /src/lib/libssl/t1_lib.c
parentbe6c7be0c897a4579deb5f3bdc20177429f57d10 (diff)
downloadopenbsd-6faf798d1d3380d029805b0d46c838a5d4d15405.tar.gz
openbsd-6faf798d1d3380d029805b0d46c838a5d4d15405.tar.bz2
openbsd-6faf798d1d3380d029805b0d46c838a5d4d15405.zip
tls_decrypt_ticket(): memory leak and uncleaned EVP_CIPHER_CTX upon error.
Diffstat (limited to 'src/lib/libssl/t1_lib.c')
-rw-r--r--src/lib/libssl/t1_lib.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libssl/t1_lib.c b/src/lib/libssl/t1_lib.c
index 0ea9ce752d..99298c1791 100644
--- a/src/lib/libssl/t1_lib.c
+++ b/src/lib/libssl/t1_lib.c
@@ -2133,8 +2133,11 @@ tls_decrypt_ticket(SSL *s, const unsigned char *etick, int eticklen,
2133 return -1; 2133 return -1;
2134 } 2134 }
2135 EVP_DecryptUpdate(&ctx, sdec, &slen, p, eticklen); 2135 EVP_DecryptUpdate(&ctx, sdec, &slen, p, eticklen);
2136 if (EVP_DecryptFinal(&ctx, sdec + slen, &mlen) <= 0) 2136 if (EVP_DecryptFinal(&ctx, sdec + slen, &mlen) <= 0) {
2137 free(sdec);
2138 EVP_CIPHER_CTX_cleanup(&ctx);
2137 return 2; 2139 return 2;
2140 }
2138 slen += mlen; 2141 slen += mlen;
2139 EVP_CIPHER_CTX_cleanup(&ctx); 2142 EVP_CIPHER_CTX_cleanup(&ctx);
2140 p = sdec; 2143 p = sdec;