summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormiod <>2014-05-26 20:11:27 +0000
committermiod <>2014-05-26 20:11:27 +0000
commit0442c253bd5389cf7be9c6db5502bc0112b1c5b9 (patch)
treefd119846d73cdf02b19e9c30bbcd3dc5ca4f7da4 /src
parent25b28f1dc31dbf2e8b7d6584cb209dca4fb4896a (diff)
downloadopenbsd-0442c253bd5389cf7be9c6db5502bc0112b1c5b9.tar.gz
openbsd-0442c253bd5389cf7be9c6db5502bc0112b1c5b9.tar.bz2
openbsd-0442c253bd5389cf7be9c6db5502bc0112b1c5b9.zip
tls_decrypt_ticket(): memory leak and uncleaned EVP_CIPHER_CTX upon error.
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/src/ssl/t1_lib.c5
-rw-r--r--src/lib/libssl/t1_lib.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/libssl/src/ssl/t1_lib.c b/src/lib/libssl/src/ssl/t1_lib.c
index 0ea9ce752d..99298c1791 100644
--- a/src/lib/libssl/src/ssl/t1_lib.c
+++ b/src/lib/libssl/src/ssl/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;
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;