diff --git a/src/MQTTAsync.c b/src/MQTTAsync.c index b49f1580..5bda04b9 100644 --- a/src/MQTTAsync.c +++ b/src/MQTTAsync.c @@ -804,11 +804,17 @@ int MQTTAsync_connect(MQTTAsync handle, const MQTTAsync_connectOptions* options) #endif if (m->c->username) + { free((void*)m->c->username); + m->c->username = NULL; + } if (options->username) m->c->username = MQTTStrdup(options->username); if (m->c->password) + { free((void*)m->c->password); + m->c->password = NULL; + } if (options->password) { m->c->password = MQTTStrdup(options->password); diff --git a/src/MQTTClient.c b/src/MQTTClient.c index d4ed60e9..406bad91 100644 --- a/src/MQTTClient.c +++ b/src/MQTTClient.c @@ -1625,11 +1625,17 @@ static MQTTResponse MQTTClient_connectURI(MQTTClient handle, MQTTClient_connectO #endif if (m->c->username) + { free((void*)m->c->username); + m->c->username = NULL; + } if (options->username) m->c->username = MQTTStrdup(options->username); if (m->c->password) + { free((void*)m->c->password); + m->c->password = NULL; + } if (options->password) { m->c->password = MQTTStrdup(options->password);