diff --git a/ChangeLog.txt b/ChangeLog.txt index 7bd75858..9724afb0 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -8,11 +8,14 @@ Broker: `response-topic`. Closes #1244. - Fix build for WITH_TLS=no. Closes #1250. -Client library: +Library: - Fix crash after client has been unable to connect to a broker. This occurs when the client is exiting and is part of the final library cleanup routine. Closes #1246. +Clients: +- Fix -L url parsing. Closes #1248. + 1.6.1 - 20190426 ================ diff --git a/client/client_shared.c b/client/client_shared.c index c0379af4..8569651d 100644 --- a/client/client_shared.c +++ b/client/client_shared.c @@ -669,13 +669,13 @@ int client_config_line_proc(struct mosq_config *cfg, int pub_or_sub, int argc, c tmp = strchr(url, '@'); if(tmp) { - char *colon = strchr(url, ':'); *tmp++ = 0; + char *colon = strchr(url, ':'); if(colon) { *colon = 0; - cfg->password = colon + 1; + cfg->password = strdup(colon + 1); } - cfg->username = url; + cfg->username = strdup(url); url = tmp; } cfg->host = url; @@ -685,6 +685,8 @@ int client_config_line_proc(struct mosq_config *cfg, int pub_or_sub, int argc, c *tmp++ = 0; cfg->port = atoi(tmp); } + /* Now we've removed the port, time to get the host on the heap */ + cfg->host = strdup(cfg->host); } i++; }else if(!strcmp(argv[i], "-l") || !strcmp(argv[i], "--stdin-line")){