summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2021-07-19 08:42:24 +0000
committerjsing <>2021-07-19 08:42:24 +0000
commit55a704a90e9e377c223d07834fbadb44be0ab0a2 (patch)
treefcdf7be991a935818048c885037a88e82337072d
parent4de658e74ecddfe0253c2d0c886a1e9a75a076cf (diff)
downloadopenbsd-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.c10
-rw-r--r--src/lib/libssl/d1_pkt.c6
-rw-r--r--src/lib/libssl/dtls_locl.h8
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
1206void
1207dtls1_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
96struct ccs_header_st {
97 unsigned char type;
98 unsigned short seq;
99};
100
101struct dtls1_timeout_st { 96struct 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);
225void dtls1_clear_record_buffer(SSL *s); 220void dtls1_clear_record_buffer(SSL *s);
226int dtls1_get_message_header(unsigned char *data, 221int dtls1_get_message_header(unsigned char *data,
227 struct hm_header_st *msg_hdr); 222 struct hm_header_st *msg_hdr);
228void dtls1_get_ccs_header(unsigned char *data, struct ccs_header_st *ccs_hdr);
229void dtls1_reset_read_seq_numbers(SSL *s); 223void dtls1_reset_read_seq_numbers(SSL *s);
230struct timeval* dtls1_get_timeout(SSL *s, struct timeval* timeleft); 224struct timeval* dtls1_get_timeout(SSL *s, struct timeval* timeleft);
231int dtls1_check_timeout_num(SSL *s); 225int dtls1_check_timeout_num(SSL *s);