From ca8a50760714e2f23a5e43536351619d35165afb Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Fri, 12 May 2017 22:29:54 +0100 Subject: [PATCH] [446] Don't segfault on duplicate bridge names. Thanks to Tifaifai Maupiti. Bug: https://github.com/eclipse/mosquitto/issues/446 --- ChangeLog.txt | 1 + src/conf.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog.txt b/ChangeLog.txt index 2d5315bc..f708d66c 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,7 @@ Broker: #415. - Fixes to readme.md. - Fix deprecation warning for OpenSSL 1.1. PR #416. +- Don't segfault on duplicate bridge names. Closes #446. 1.4.11 - 20170220 diff --git a/src/conf.c b/src/conf.c index 9792b2ea..56ea9ace 100644 --- a/src/conf.c +++ b/src/conf.c @@ -916,6 +916,14 @@ int _config_read_file_core(struct mqtt3_config *config, bool reload, const char if(reload) continue; // FIXME token = strtok_r(NULL, " ", &saveptr); if(token){ + /* Check for existing bridge name. */ + for(i=0; ibridge_count; i++){ + if(!strcmp(config->bridges[i].name, token)){ + _mosquitto_log_printf(NULL, MOSQ_LOG_ERR, "Error: Duplicate bridge name \"%s\".", token); + return MOSQ_ERR_INVAL; + } + } + config->bridge_count++; config->bridges = _mosquitto_realloc(config->bridges, config->bridge_count*sizeof(struct _mqtt3_bridge)); if(!config->bridges){