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 | |
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@
-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); |