From 57ee5eb55c461d1fc5b1638395bde1bf0f60d74f Mon Sep 17 00:00:00 2001 From: Olaf Bergmann Date: Tue, 31 Jul 2018 11:23:04 +0200 Subject: [PATCH] coap-server.c: fix NULL-pointer dereference in example server When realloc() returns NULL, hnd_put() must be left immediately after setting the response code. This change fixes coverity CID 1472106. --- examples/coap-server.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/examples/coap-server.c b/examples/coap-server.c index 24399fda..b22a01bb 100644 --- a/examples/coap-server.c +++ b/examples/coap-server.c @@ -454,24 +454,25 @@ hnd_put(coap_context_t *ctx UNUSED_PARAM, else { dynamic_count--; response->code = COAP_RESPONSE_CODE(500); + return; } - } - else { + } else { /* Need to do this as coap_get_uri_path() created it */ coap_delete_string(uri_path); response->code = COAP_RESPONSE_CODE(204); } + coap_get_data (request, &size, &data); if (dynamic_entry[i].value) { coap_delete_string(dynamic_entry[i].value); dynamic_entry[i].value = NULL; } + if (size > 0) { dynamic_entry[i].value = coap_new_string(size); memcpy (dynamic_entry[i].value->s, data, size); dynamic_entry[i].value->length = size; } - return; } /*