summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/d1_lib.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/lib/libssl/d1_lib.c b/src/lib/libssl/d1_lib.c
index 7e919a6c9b..45bbd9b45d 100644
--- a/src/lib/libssl/d1_lib.c
+++ b/src/lib/libssl/d1_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: d1_lib.c,v 1.42 2017/04/10 17:27:33 jsing Exp $ */ 1/* $OpenBSD: d1_lib.c,v 1.43 2020/02/21 16:12:18 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.
@@ -455,11 +455,19 @@ void
455dtls1_build_sequence_number(unsigned char *dst, unsigned char *seq, 455dtls1_build_sequence_number(unsigned char *dst, unsigned char *seq,
456 unsigned short epoch) 456 unsigned short epoch)
457{ 457{
458 unsigned char dtlsseq[SSL3_SEQUENCE_SIZE]; 458 CBB cbb;
459 unsigned char *p;
460 459
461 p = dtlsseq; 460 if (!CBB_init_fixed(&cbb, dst, SSL3_SEQUENCE_SIZE))
462 s2n(epoch, p); 461 goto err;
463 memcpy(p, &seq[2], SSL3_SEQUENCE_SIZE - 2); 462 if (!CBB_add_u16(&cbb, epoch))
464 memcpy(dst, dtlsseq, SSL3_SEQUENCE_SIZE); 463 goto err;
464 if (!CBB_add_bytes(&cbb, &seq[2], SSL3_SEQUENCE_SIZE - 2))
465 goto err;
466 if (!CBB_finish(&cbb, NULL, NULL))
467 goto err;
468
469 return;
470
471 err:
472 CBB_cleanup(&cbb);
465} 473}