Sanity check the return from final_finish_mac

The return value is checked for 0. This is currently safe but we should
really check for <= 0 since -1 is frequently used for error conditions.
Thanks to Kevin Wojtysiak (Int3 Solutions) and Paramjot Oberoi (Int3
Solutions) for reporting this issue.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(cherry picked from commit c427570e50)

Conflicts:
	ssl/ssl_locl.h

Conflicts:
	ssl/ssl_locl.h
This commit is contained in:
Matt Caswell 2015-04-28 15:19:50 +01:00
parent 592ac25342
commit 26800340db

View file

@ -169,7 +169,7 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen)
i = s->method->ssl3_enc->final_finish_mac(s, i = s->method->ssl3_enc->final_finish_mac(s,
sender, slen, sender, slen,
s->s3->tmp.finish_md); s->s3->tmp.finish_md);
if (i == 0) if (i <= 0)
return 0; return 0;
s->s3->tmp.finish_md_len = i; s->s3->tmp.finish_md_len = i;
memcpy(p, s->s3->tmp.finish_md, i); memcpy(p, s->s3->tmp.finish_md, i);