Skip to content

Commit

Permalink
broker: fix memory leaks on plugin payload modification
Browse files Browse the repository at this point in the history
Signed-off-by: Abilio Marques <[email protected]>
  • Loading branch information
abiliojr committed Mar 13, 2022
1 parent 74814cc commit 3c48b50
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions src/plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,23 +157,29 @@ int plugin__handle_message(struct mosquitto *context, struct mosquitto_msg_store

DL_FOREACH(opts->plugin_callbacks.message, cb_base){
rc = cb_base->cb(MOSQ_EVT_MESSAGE, &event_data, cb_base->userdata);

if(stored->topic != event_data.topic){
mosquitto__free(stored->topic);
stored->topic = event_data.topic;
}

if(stored->payload != event_data.payload){
mosquitto__free(stored->payload);
stored->payload = event_data.payload;
stored->payloadlen = event_data.payloadlen;
}

if(stored->properties != event_data.properties){
mosquitto_property_free_all(stored->properties);
stored->properties = event_data.properties;
}

if(rc != MOSQ_ERR_SUCCESS){
break;
}
}

if(stored->topic != event_data.topic){
mosquitto__free(stored->topic);
stored->topic = event_data.topic;
}

if(stored->payload != event_data.payload){
mosquitto__free(stored->payload);
stored->payload = event_data.payload;
stored->payloadlen = event_data.payloadlen;
}
stored->retain = event_data.retain;
stored->properties = event_data.properties;

return rc;
}
Expand Down

0 comments on commit 3c48b50

Please sign in to comment.