diff options
Diffstat (limited to 'src/lib/libssl/s3_lib.c')
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 68c6fc6324..87092069df 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_lib.c,v 1.240 2022/11/10 18:06:37 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.241 2022/11/11 17:15:26 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 | * |
| @@ -163,6 +163,7 @@ | |||
| 163 | #include "ssl_locl.h" | 163 | #include "ssl_locl.h" |
| 164 | #include "ssl_sigalgs.h" | 164 | #include "ssl_sigalgs.h" |
| 165 | #include "ssl_tlsext.h" | 165 | #include "ssl_tlsext.h" |
| 166 | #include "tls_content.h" | ||
| 166 | 167 | ||
| 167 | #define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers) / sizeof(SSL_CIPHER)) | 168 | #define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers) / sizeof(SSL_CIPHER)) |
| 168 | 169 | ||
| @@ -1441,11 +1442,12 @@ ssl3_cipher_get_value(const SSL_CIPHER *c) | |||
| 1441 | int | 1442 | int |
| 1442 | ssl3_pending(const SSL *s) | 1443 | ssl3_pending(const SSL *s) |
| 1443 | { | 1444 | { |
| 1444 | if (s->rstate == SSL_ST_READ_BODY) | 1445 | if (s->s3->rcontent == NULL) |
| 1446 | return 0; | ||
| 1447 | if (tls_content_type(s->s3->rcontent) != SSL3_RT_APPLICATION_DATA) | ||
| 1445 | return 0; | 1448 | return 0; |
| 1446 | 1449 | ||
| 1447 | return (s->s3->rrec.type == SSL3_RT_APPLICATION_DATA) ? | 1450 | return tls_content_remaining(s->s3->rcontent); |
| 1448 | s->s3->rrec.length : 0; | ||
| 1449 | } | 1451 | } |
| 1450 | 1452 | ||
| 1451 | int | 1453 | int |
| @@ -1560,6 +1562,8 @@ ssl3_free(SSL *s) | |||
| 1560 | ssl3_release_read_buffer(s); | 1562 | ssl3_release_read_buffer(s); |
| 1561 | ssl3_release_write_buffer(s); | 1563 | ssl3_release_write_buffer(s); |
| 1562 | 1564 | ||
| 1565 | tls_content_free(s->s3->rcontent); | ||
| 1566 | |||
| 1563 | tls_buffer_free(s->s3->alert_fragment); | 1567 | tls_buffer_free(s->s3->alert_fragment); |
| 1564 | tls_buffer_free(s->s3->handshake_fragment); | 1568 | tls_buffer_free(s->s3->handshake_fragment); |
| 1565 | 1569 | ||
| @@ -1637,6 +1641,9 @@ ssl3_clear(SSL *s) | |||
| 1637 | rlen = s->s3->rbuf.len; | 1641 | rlen = s->s3->rbuf.len; |
| 1638 | wlen = s->s3->wbuf.len; | 1642 | wlen = s->s3->wbuf.len; |
| 1639 | 1643 | ||
| 1644 | tls_content_free(s->s3->rcontent); | ||
| 1645 | s->s3->rcontent = NULL; | ||
| 1646 | |||
| 1640 | tls1_transcript_free(s); | 1647 | tls1_transcript_free(s); |
| 1641 | tls1_transcript_hash_free(s); | 1648 | tls1_transcript_hash_free(s); |
| 1642 | 1649 | ||
