summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ex_data.c
diff options
context:
space:
mode:
authorjsing <>2016-11-03 08:15:22 +0000
committerjsing <>2016-11-03 08:15:22 +0000
commit463a204c858ff0b4b4b13aed4ed5f6d5670a5c8b (patch)
tree2c9e9177516e955488acfb0b61a4dbeb7b177ab5 /src/lib/libcrypto/ex_data.c
parent16110475192553519ce33e3c5ab81eed49bdba30 (diff)
downloadopenbsd-463a204c858ff0b4b4b13aed4ed5f6d5670a5c8b.tar.gz
openbsd-463a204c858ff0b4b4b13aed4ed5f6d5670a5c8b.tar.bz2
openbsd-463a204c858ff0b4b4b13aed4ed5f6d5670a5c8b.zip
Clean up the TLS handshake digest handling - this refactors some of the
code for improved readability, however it also address two issues. The first of these is a hard-to-hit double free that will occur if EVP_DigestInit_ex() fails. To avoid this and to be more robust, ensure that tls1_digest_cached_records() either completes successfully and sets up all of the necessary digests, or it cleans up and frees everything that was allocated. The second issue is that EVP_DigestUpdate() can fail - detect and handle this in tls1_finish_mac() and change the return type to an int so that a failure can be propagated to the caller (the callers still need to be fixed to handle this, in a later diff). The double-free was reported by Matthew Dillon. ok beck@ doug@ miod@
Diffstat (limited to 'src/lib/libcrypto/ex_data.c')
0 files changed, 0 insertions, 0 deletions