From eaff6928d68ea32ac10bbf00c911d706c1781c64 Mon Sep 17 00:00:00 2001 From: Jon Shallow Date: Tue, 3 Sep 2024 17:01:08 +0100 Subject: [PATCH] Coverity-Scan: Fix CID 1599559-1599562 --- examples/coap-server.c | 1 + src/coap_proxy.c | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/examples/coap-server.c b/examples/coap-server.c index d403901a..523521e9 100644 --- a/examples/coap-server.c +++ b/examples/coap-server.c @@ -1826,6 +1826,7 @@ cmdline_proxy(char *arg) { } forward_proxy.type = COAP_PROXY_FORWARD; } else { + memset(&uri, 0, sizeof(uri)); forward_proxy.type = COAP_PROXY_DIRECT_STRIP; } diff --git a/src/coap_proxy.c b/src/coap_proxy.c index 76beed33..e36586d6 100644 --- a/src/coap_proxy.c +++ b/src/coap_proxy.c @@ -465,7 +465,7 @@ coap_proxy_get_ongoing_session(coap_session_t *session, proxy_entry->ongoing = coap_new_client_session_oscore_pki_lkd(context, NULL, &dst, proto, server_use->dtls_pki, server_use->oscore_conf); - } else if (server_use->dtls_pki) { + } else if (server_use->dtls_cpsk) { server_use->dtls_cpsk->client_sni = client_sni; proxy_entry->ongoing = coap_new_client_session_oscore_psk_lkd(context, NULL, &dst, @@ -549,7 +549,7 @@ coap_proxy_forward_request_lkd(coap_session_t *session, size_t total; coap_binary_t *body_data = NULL; const uint8_t *data; - coap_pdu_t *pdu; + coap_pdu_t *pdu = NULL; coap_bin_const_t r_token = coap_pdu_get_token(request); uint8_t token[8]; size_t token_len; @@ -613,7 +613,6 @@ coap_proxy_forward_request_lkd(coap_session_t *session, } if (!coap_add_token(pdu, token_len, token)) { - coap_delete_pdu(pdu); goto failed; } @@ -687,6 +686,7 @@ coap_proxy_forward_request_lkd(coap_session_t *session, } if (coap_send_lkd(proxy_entry->ongoing, pdu) == COAP_INVALID_MID) { + pdu = NULL; coap_log_debug("proxy: upstream PDU send error\n"); goto failed; } @@ -700,6 +700,7 @@ coap_proxy_forward_request_lkd(coap_session_t *session, failed: response->code = COAP_RESPONSE_CODE(500); + coap_delete_pdu(pdu); return 0; } @@ -841,6 +842,7 @@ coap_proxy_forward_response_lkd(coap_session_t *session, media_type, maxage, etag, size, data, coap_proxy_release_body_data, body_data); + body_data = NULL; coap_delete_string(l_query); } @@ -862,6 +864,7 @@ remove_match: (proxy_entry->req_count-j) * sizeof(proxy_entry->req_list[0])); } } + coap_delete_binary(body_data); return COAP_RESPONSE_OK; }