Fixed incorrect return code handling in ssl3_final_finish_mac.
Based on an original patch by Joel Sing (OpenBSD) who also originally identified the issue. (Imported from upstream's 728bd41a159ea16a60111e7c1120ec2a005507b3)
This commit is contained in:
+10
-2
@@ -608,10 +608,18 @@ int ssl3_cert_verify_mac(SSL *s, int md_nid, unsigned char *p)
|
||||
int ssl3_final_finish_mac(SSL *s,
|
||||
const char *sender, int len, unsigned char *p)
|
||||
{
|
||||
int ret;
|
||||
int ret, sha1len;
|
||||
ret=ssl3_handshake_mac(s,NID_md5,sender,len,p);
|
||||
if(ret == 0)
|
||||
return 0;
|
||||
|
||||
p+=ret;
|
||||
ret+=ssl3_handshake_mac(s,NID_sha1,sender,len,p);
|
||||
|
||||
sha1len=ssl3_handshake_mac(s,NID_sha1,sender,len,p);
|
||||
if(sha1len == 0)
|
||||
return 0;
|
||||
|
||||
ret+=sha1len;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user