diff --git a/lib/options.c b/lib/options.c index fa7386c2..23c88352 100644 --- a/lib/options.c +++ b/lib/options.c @@ -228,19 +228,23 @@ int mosquitto_tls_opts_set(struct mosquitto *mosq, int cert_reqs, const char *tl || !strcasecmp(tls_version, "tlsv1.2") || !strcasecmp(tls_version, "tlsv1.1")){ + mosquitto__free(mosq->tls_version); mosq->tls_version = mosquitto__strdup(tls_version); if(!mosq->tls_version) return MOSQ_ERR_NOMEM; }else{ return MOSQ_ERR_INVAL; } }else{ + mosquitto__free(mosq->tls_version); mosq->tls_version = mosquitto__strdup("tlsv1.2"); if(!mosq->tls_version) return MOSQ_ERR_NOMEM; } if(ciphers){ + mosquitto__free(mosq->tls_ciphers); mosq->tls_ciphers = mosquitto__strdup(ciphers); if(!mosq->tls_ciphers) return MOSQ_ERR_NOMEM; }else{ + mosquitto__free(mosq->tls_ciphers); mosq->tls_ciphers = NULL; }