diff options
| author | jsing <> | 2022-11-10 18:06:37 +0000 |
|---|---|---|
| committer | jsing <> | 2022-11-10 18:06:37 +0000 |
| commit | 89b5796e48ebf1a65b490024b25e1111aaa5d4e3 (patch) | |
| tree | 1c172cf5ae25ab26fa6f64cb114505e1bfcc1267 /src/lib/libssl/s3_lib.c | |
| parent | 9a85a413c50cb23ce2475f47d9c284f7010bae36 (diff) | |
| download | openbsd-89b5796e48ebf1a65b490024b25e1111aaa5d4e3.tar.gz openbsd-89b5796e48ebf1a65b490024b25e1111aaa5d4e3.tar.bz2 openbsd-89b5796e48ebf1a65b490024b25e1111aaa5d4e3.zip | |
Use tls_buffer for alert and handshake fragments in the legacy stack.
This avoids a bunch of pointer munging and a handrolled memmove.
ok tb@
Diffstat (limited to 'src/lib/libssl/s3_lib.c')
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 52ad16a697..68c6fc6324 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.239 2022/10/02 16:36:41 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.240 2022/11/10 18:06:37 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 | * |
| @@ -1560,6 +1560,9 @@ ssl3_free(SSL *s) | |||
| 1560 | ssl3_release_read_buffer(s); | 1560 | ssl3_release_read_buffer(s); |
| 1561 | ssl3_release_write_buffer(s); | 1561 | ssl3_release_write_buffer(s); |
| 1562 | 1562 | ||
| 1563 | tls_buffer_free(s->s3->alert_fragment); | ||
| 1564 | tls_buffer_free(s->s3->handshake_fragment); | ||
| 1565 | |||
| 1563 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); | 1566 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); |
| 1564 | sk_X509_pop_free(s->s3->hs.peer_certs, X509_free); | 1567 | sk_X509_pop_free(s->s3->hs.peer_certs, X509_free); |
| 1565 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); | 1568 | sk_X509_pop_free(s->s3->hs.peer_certs_no_leaf, X509_free); |
| @@ -1598,6 +1601,11 @@ ssl3_clear(SSL *s) | |||
| 1598 | sk_X509_pop_free(s->verified_chain, X509_free); | 1601 | sk_X509_pop_free(s->verified_chain, X509_free); |
| 1599 | s->verified_chain = NULL; | 1602 | s->verified_chain = NULL; |
| 1600 | 1603 | ||
| 1604 | tls_buffer_free(s->s3->alert_fragment); | ||
| 1605 | s->s3->alert_fragment = NULL; | ||
| 1606 | tls_buffer_free(s->s3->handshake_fragment); | ||
| 1607 | s->s3->handshake_fragment = NULL; | ||
| 1608 | |||
| 1601 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); | 1609 | freezero(s->s3->hs.sigalgs, s->s3->hs.sigalgs_len); |
| 1602 | s->s3->hs.sigalgs = NULL; | 1610 | s->s3->hs.sigalgs = NULL; |
| 1603 | s->s3->hs.sigalgs_len = 0; | 1611 | s->s3->hs.sigalgs_len = 0; |
