From 6a29f6c11055ec2099ab6780e23aa0d6af56da21 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sun, 17 Nov 2019 21:47:01 +0000 Subject: Change tls13_record_layer_phh() to take a CBS as this avoids ownership issues and makes call sites cleaner. ok beck@ --- src/lib/libssl/tls13_internal.h | 5 ++--- src/lib/libssl/tls13_record_layer.c | 9 ++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h index 05e108952a..df5f13eb66 100644 --- a/src/lib/libssl/tls13_internal.h +++ b/src/lib/libssl/tls13_internal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tls13_internal.h,v 1.31 2019/11/17 17:20:16 jsing Exp $ */ +/* $OpenBSD: tls13_internal.h,v 1.32 2019/11/17 21:47:01 jsing Exp $ */ /* * Copyright (c) 2018 Bob Beck * Copyright (c) 2018 Theo Buehler @@ -122,8 +122,7 @@ int tls13_record_layer_set_write_traffic_key(struct tls13_record_layer *rl, struct tls13_secret *write_key); ssize_t tls13_record_layer_alert(struct tls13_record_layer *rl, uint8_t alert_level, uint8_t alert_desc); -ssize_t tls13_record_layer_phh(struct tls13_record_layer *rl, uint8_t *data, - size_t len); +ssize_t tls13_record_layer_phh(struct tls13_record_layer *rl, CBS *cbs); ssize_t tls13_read_handshake_data(struct tls13_record_layer *rl, uint8_t *buf, size_t n); ssize_t tls13_write_handshake_data(struct tls13_record_layer *rl, const uint8_t *buf, diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c index 9458024ef3..ebefac0a25 100644 --- a/src/lib/libssl/tls13_record_layer.c +++ b/src/lib/libssl/tls13_record_layer.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tls13_record_layer.c,v 1.13 2019/11/17 18:42:17 tb Exp $ */ +/* $OpenBSD: tls13_record_layer.c,v 1.14 2019/11/17 21:47:01 jsing Exp $ */ /* * Copyright (c) 2018, 2019 Joel Sing * @@ -356,14 +356,13 @@ tls13_record_layer_alert(struct tls13_record_layer *rl, } ssize_t -tls13_record_layer_phh(struct tls13_record_layer *rl, uint8_t *data, - size_t len) +tls13_record_layer_phh(struct tls13_record_layer *rl, CBS *cbs) { if (rl->phh_data != NULL) return TLS13_IO_FAILURE; - rl->phh_data = data; - rl->phh_len = len; + if (!CBS_stow(cbs, &rl->phh_data, &rl->phh_len)) + return TLS13_IO_FAILURE; CBS_init(&rl->phh_cbs, rl->phh_data, rl->phh_len); -- cgit v1.2.3-55-g6feb