From 28416da47ae3ef4dc00f0c924887d6b22ce90a4c Mon Sep 17 00:00:00 2001 From: Alexander Fiebig Date: Sat, 8 Oct 2022 19:08:21 +0200 Subject: [PATCH] Fixed empty string crash in mosquitto_property_copy_all Signed-off-by: Alexander Fiebig --- lib/property_mosq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/property_mosq.c b/lib/property_mosq.c index 71c49737..7afe08cc 100644 --- a/lib/property_mosq.c +++ b/lib/property_mosq.c @@ -1248,7 +1248,7 @@ int mosquitto_property_copy_all(mosquitto_property **dest, const mosquitto_prope case MQTT_PROP_SERVER_REFERENCE: case MQTT_PROP_REASON_STRING: pnew->value.s.len = src->value.s.len; - pnew->value.s.v = strdup(src->value.s.v); + pnew->value.s.v = src->value.s.v ? strdup(src->value.s.v) : (char*)calloc(1,1); if(!pnew->value.s.v){ mosquitto_property_free_all(dest); return MOSQ_ERR_NOMEM; @@ -1268,14 +1268,14 @@ int mosquitto_property_copy_all(mosquitto_property **dest, const mosquitto_prope case MQTT_PROP_USER_PROPERTY: pnew->value.s.len = src->value.s.len; - pnew->value.s.v = strdup(src->value.s.v); + pnew->value.s.v = src->value.s.v ? strdup(src->value.s.v) : (char*)calloc(1,1); if(!pnew->value.s.v){ mosquitto_property_free_all(dest); return MOSQ_ERR_NOMEM; } pnew->name.len = src->name.len; - pnew->name.v = strdup(src->name.v); + pnew->name.v = src->name.v ? strdup(src->name.v) : (char*)calloc(1,1); if(!pnew->name.v){ mosquitto_property_free_all(dest); return MOSQ_ERR_NOMEM;