diff options
Diffstat (limited to 'src/lib/libssl/s3_both.c')
-rw-r--r-- | src/lib/libssl/s3_both.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/libssl/s3_both.c b/src/lib/libssl/s3_both.c index 033831e23d..41b35e5de6 100644 --- a/src/lib/libssl/s3_both.c +++ b/src/lib/libssl/s3_both.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_both.c,v 1.56 2017/01/23 14:35:42 jsing Exp $ */ | 1 | /* $OpenBSD: s3_both.c,v 1.57 2017/01/26 05:31:25 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -524,11 +524,17 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok) | |||
524 | ssl3_take_mac(s); | 524 | ssl3_take_mac(s); |
525 | 525 | ||
526 | /* Feed this message into MAC computation. */ | 526 | /* Feed this message into MAC computation. */ |
527 | tls1_finish_mac(s, (unsigned char *)s->internal->init_buf->data, s->internal->init_num + 4); | 527 | if (s->internal->mac_packet) { |
528 | if (s->internal->msg_callback) | 528 | tls1_finish_mac(s, (unsigned char *)s->internal->init_buf->data, |
529 | s->internal->msg_callback(0, s->version, SSL3_RT_HANDSHAKE, | 529 | s->internal->init_num + 4); |
530 | s->internal->init_buf->data, (size_t)s->internal->init_num + 4, s, | 530 | s->internal->mac_packet = 0; |
531 | s->internal->msg_callback_arg); | 531 | |
532 | if (s->internal->msg_callback) | ||
533 | s->internal->msg_callback(0, s->version, | ||
534 | SSL3_RT_HANDSHAKE, s->internal->init_buf->data, | ||
535 | (size_t)s->internal->init_num + 4, s, | ||
536 | s->internal->msg_callback_arg); | ||
537 | } | ||
532 | 538 | ||
533 | *ok = 1; | 539 | *ok = 1; |
534 | return (s->internal->init_num); | 540 | return (s->internal->init_num); |