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){