diff options
| author | jsing <> | 2021-07-19 08:42:24 +0000 | 
|---|---|---|
| committer | jsing <> | 2021-07-19 08:42:24 +0000 | 
| commit | 55a704a90e9e377c223d07834fbadb44be0ab0a2 (patch) | |
| tree | fcdf7be991a935818048c885037a88e82337072d /src | |
| parent | 4de658e74ecddfe0253c2d0c886a1e9a75a076cf (diff) | |
| download | openbsd-55a704a90e9e377c223d07834fbadb44be0ab0a2.tar.gz openbsd-55a704a90e9e377c223d07834fbadb44be0ab0a2.tar.bz2 openbsd-55a704a90e9e377c223d07834fbadb44be0ab0a2.zip | |
Mop up dtls1_get_ccs_header() and struct ccs_header_st.
All this code does is read one byte from memory with an unknown length,
potentially being a one byte overread... and then nothing is actually done
with the value.
ok tb@
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libssl/d1_both.c | 10 | ||||
| -rw-r--r-- | src/lib/libssl/d1_pkt.c | 6 | ||||
| -rw-r--r-- | src/lib/libssl/dtls_locl.h | 8 | 
3 files changed, 3 insertions, 21 deletions
| diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c index 2e5e86641c..61dc47b4b7 100644 --- a/src/lib/libssl/d1_both.c +++ b/src/lib/libssl/d1_both.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_both.c,v 1.76 2021/07/01 17:53:39 jsing Exp $ */ | 1 | /* $OpenBSD: d1_both.c,v 1.77 2021/07/19 08:42:24 jsing Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu | 
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 
| @@ -1202,11 +1202,3 @@ dtls1_get_message_header(unsigned char *data, struct hm_header_st *msg_hdr) | |||
| 1202 | 1202 | ||
| 1203 | return 1; | 1203 | return 1; | 
| 1204 | } | 1204 | } | 
| 1205 | |||
| 1206 | void | ||
| 1207 | dtls1_get_ccs_header(unsigned char *data, struct ccs_header_st *ccs_hdr) | ||
| 1208 | { | ||
| 1209 | memset(ccs_hdr, 0, sizeof(struct ccs_header_st)); | ||
| 1210 | |||
| 1211 | ccs_hdr->type = *(data++); | ||
| 1212 | } | ||
| diff --git a/src/lib/libssl/d1_pkt.c b/src/lib/libssl/d1_pkt.c index 36dd255722..2610206797 100644 --- a/src/lib/libssl/d1_pkt.c +++ b/src/lib/libssl/d1_pkt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_pkt.c,v 1.100 2021/07/19 08:39:28 jsing Exp $ */ | 1 | /* $OpenBSD: d1_pkt.c,v 1.101 2021/07/19 08:42:24 jsing Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu | 
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 
| @@ -835,10 +835,6 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
| 835 | } | 835 | } | 
| 836 | 836 | ||
| 837 | if (rr->type == SSL3_RT_CHANGE_CIPHER_SPEC) { | 837 | if (rr->type == SSL3_RT_CHANGE_CIPHER_SPEC) { | 
| 838 | struct ccs_header_st ccs_hdr; | ||
| 839 | |||
| 840 | dtls1_get_ccs_header(rr->data, &ccs_hdr); | ||
| 841 | |||
| 842 | /* 'Change Cipher Spec' is just a single byte, so we know | 838 | /* 'Change Cipher Spec' is just a single byte, so we know | 
| 843 | * exactly what the record payload has to look like */ | 839 | * exactly what the record payload has to look like */ | 
| 844 | /* XDTLS: check that epoch is consistent */ | 840 | /* XDTLS: check that epoch is consistent */ | 
| diff --git a/src/lib/libssl/dtls_locl.h b/src/lib/libssl/dtls_locl.h index 9bf1fe6661..9e0699d098 100644 --- a/src/lib/libssl/dtls_locl.h +++ b/src/lib/libssl/dtls_locl.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dtls_locl.h,v 1.1 2021/05/16 13:56:30 jsing Exp $ */ | 1 | /* $OpenBSD: dtls_locl.h,v 1.2 2021/07/19 08:42:24 jsing Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu | 
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 
| @@ -93,11 +93,6 @@ struct hm_header_st { | |||
| 93 | struct dtls1_retransmit_state saved_retransmit_state; | 93 | struct dtls1_retransmit_state saved_retransmit_state; | 
| 94 | }; | 94 | }; | 
| 95 | 95 | ||
| 96 | struct ccs_header_st { | ||
| 97 | unsigned char type; | ||
| 98 | unsigned short seq; | ||
| 99 | }; | ||
| 100 | |||
| 101 | struct dtls1_timeout_st { | 96 | struct dtls1_timeout_st { | 
| 102 | /* Number of read timeouts so far */ | 97 | /* Number of read timeouts so far */ | 
| 103 | unsigned int read_timeouts; | 98 | unsigned int read_timeouts; | 
| @@ -225,7 +220,6 @@ int dtls1_retransmit_buffered_messages(SSL *s); | |||
| 225 | void dtls1_clear_record_buffer(SSL *s); | 220 | void dtls1_clear_record_buffer(SSL *s); | 
| 226 | int dtls1_get_message_header(unsigned char *data, | 221 | int dtls1_get_message_header(unsigned char *data, | 
| 227 | struct hm_header_st *msg_hdr); | 222 | struct hm_header_st *msg_hdr); | 
| 228 | void dtls1_get_ccs_header(unsigned char *data, struct ccs_header_st *ccs_hdr); | ||
| 229 | void dtls1_reset_read_seq_numbers(SSL *s); | 223 | void dtls1_reset_read_seq_numbers(SSL *s); | 
| 230 | struct timeval* dtls1_get_timeout(SSL *s, struct timeval* timeleft); | 224 | struct timeval* dtls1_get_timeout(SSL *s, struct timeval* timeleft); | 
| 231 | int dtls1_check_timeout_num(SSL *s); | 225 | int dtls1_check_timeout_num(SSL *s); | 
