Merge branch 'fix_msg_modification_leak' of https://github.com/abiliojr/mosquitto into abiliojr-fix_msg_modification_leak

This commit is contained in:
Roger A. Light 2022-05-11 15:53:48 +01:00
commit 53a9e81480

View File

@ -157,10 +157,6 @@ int plugin__handle_message(struct mosquitto *context, struct mosquitto_msg_store
DL_FOREACH(opts->plugin_callbacks.message, cb_base){ DL_FOREACH(opts->plugin_callbacks.message, cb_base){
rc = cb_base->cb(MOSQ_EVT_MESSAGE, &event_data, cb_base->userdata); rc = cb_base->cb(MOSQ_EVT_MESSAGE, &event_data, cb_base->userdata);
if(rc != MOSQ_ERR_SUCCESS){
break;
}
}
if(stored->topic != event_data.topic){ if(stored->topic != event_data.topic){
mosquitto__free(stored->topic); mosquitto__free(stored->topic);
@ -172,8 +168,18 @@ int plugin__handle_message(struct mosquitto *context, struct mosquitto_msg_store
stored->payload = event_data.payload; stored->payload = event_data.payload;
stored->payloadlen = event_data.payloadlen; stored->payloadlen = event_data.payloadlen;
} }
stored->retain = event_data.retain;
if(stored->properties != event_data.properties){
mosquitto_property_free_all(stored->properties);
stored->properties = event_data.properties; stored->properties = event_data.properties;
}
if(rc != MOSQ_ERR_SUCCESS){
break;
}
}
stored->retain = event_data.retain;
return rc; return rc;
} }