> We have encountered a Segmentation Fault while trying to send a SSL 
> packet via Oracle VM agent.
> 
> The Segmentation Fault occurred when EVP_MD_CTX_copy() failed in tls1_mac().
> tls1_mac() doesn't check the return code of EVP_MD_CTX_copy() and keep 
> going, which results in Segmentation Fault at EVP_DigestUpdate().
> 
> The following change in tls1_mac() fixes the segfault issue.
> 
>     1 Index: openssl/ssl/t1_enc.c
>     2 
> ============================================================================
>     3 $ diff -ru ssl/t1_enc.c ssl/t1_enc.c
>     4 --- t1_enc.c.orig       Tue Dec 10 15:36:05 2013
>     5 +++ t1_enc.c    Wed Dec 11 09:29:02 2013
>     6 @@ -980,7 +980,10 @@
>     7                 }
>     8                 else
>     9                 {
>    10 -                       EVP_MD_CTX_copy(&hmac,hash);
>    11 +                       if (EVP_MD_CTX_copy(&hmac,hash) != 1)
>    12 +                               {
>    13 +                               return (0);
>    14 +                               }
>    15                         mac_ctx =&hmac;
>    16         }
>    17

The return value indicating error is -1 in this case. 
http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=03da57fe14f2de5bde9d4496a2ae9a4ae8879f88


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to