From 3343ed36740ad278fb3cee218753e5378aa773c9 Mon Sep 17 00:00:00 2001 From: Ken Bannister <kb2ma@runbox.com> Date: Wed, 23 Jan 2019 16:24:18 -0500 Subject: [PATCH] net/nanocoap: verify reply length before write --- sys/net/application_layer/nanocoap/nanocoap.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/net/application_layer/nanocoap/nanocoap.c b/sys/net/application_layer/nanocoap/nanocoap.c index cb7b2e30da..c1678c700e 100644 --- a/sys/net/application_layer/nanocoap/nanocoap.c +++ b/sys/net/application_layer/nanocoap/nanocoap.c @@ -350,12 +350,17 @@ ssize_t coap_reply_simple(coap_pkt_t *pkt, if (payload_len) { bufpos += coap_put_option_ct(bufpos, 0, ct); *bufpos++ = 0xff; + } + + ssize_t res = coap_build_reply(pkt, code, buf, len, + bufpos - payload_start + payload_len); + if (payload_len && (res > 0)) { + assert(payload); memcpy(bufpos, payload, payload_len); - bufpos += payload_len; } - return coap_build_reply(pkt, code, buf, len, bufpos - payload_start); + return res; } ssize_t coap_build_reply(coap_pkt_t *pkt, unsigned code, -- GitLab