From 22094aa00d4b6d627c3783754934acab8b099f5e Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Fri, 4 Jul 2014 21:32:27 +0100 Subject: [PATCH] Memory checks. --- src/bridge.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bridge.c b/src/bridge.c index c87d46f5..6f277cf5 100644 --- a/src/bridge.c +++ b/src/bridge.c @@ -67,6 +67,9 @@ int mqtt3_bridge_new(struct mosquitto_db *db, struct _mqtt3_bridge *bridge) } if(bridge->local_clientid){ local_id = _mosquitto_strdup(bridge->local_clientid); + if(!local_id){ + return MOSQ_ERR_NOMEM; + } }else{ len = strlen(bridge->clientid) + strlen("local.") + 2; local_id = _mosquitto_malloc(len); @@ -74,7 +77,11 @@ int mqtt3_bridge_new(struct mosquitto_db *db, struct _mqtt3_bridge *bridge) return MOSQ_ERR_NOMEM; } snprintf(local_id, len, "local.%s", bridge->clientid); - bridge->local_clientid = local_id; + bridge->local_clientid = _mosquitto_strdup(local_id); + if(!bridge->local_clientid){ + _mosquitto_free(local_id); + return MOSQ_ERR_NOMEM; + } } HASH_FIND(hh_id, db->contexts_by_id, local_id, strlen(local_id), new_context);