From ba31065390230c95693adb8ca71d9fdd845e1fa6 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Sun, 9 Jul 2023 08:37:01 +0100 Subject: [PATCH] Fix Coverity Scan 1511194, use after free Develop branch only --- lib/send_publish.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/send_publish.c b/lib/send_publish.c index c3a68cd7..27b0fda0 100644 --- a/lib/send_publish.c +++ b/lib/send_publish.c @@ -84,9 +84,6 @@ int send__publish(struct mosquitto *mosq, uint16_t mid, const char *topic, uint3 store_props = tmp_msg.properties; if(rc != MOSQ_ERR_SUCCESS){ - if(payload_changed) mosquitto__free((void *) payload); - if(topic_changed) mosquitto__free((char *) topic); - if(properties_changed) mosquitto_property_free_all((mosquitto_property **) &store_props); if(rc == MOSQ_ERR_ACL_DENIED){ log__printf(NULL, MOSQ_LOG_DEBUG, "Denied PUBLISH to %s (q%d, r%d, '%s', ... (%ld bytes))", @@ -97,6 +94,10 @@ int send__publish(struct mosquitto *mosq, uint16_t mid, const char *topic, uint3 "Rejected PUBLISH to %s, quota exceeded.", mosq->id); } + if(payload_changed) mosquitto__free((void *) payload); + if(topic_changed) mosquitto__free((char *) topic); + if(properties_changed) mosquitto_property_free_all((mosquitto_property **) &store_props); + return MOSQ_ERR_SUCCESS; } }