diff -uNr netmgmt-1.0.4/tools/netmgr/main.c netmgmt-1.0.4-new/tools/netmgr/main.c --- netmgmt-1.0.4/tools/netmgr/main.c 2016-07-28 19:22:38.000000000 +0000 +++ netmgmt-1.0.4-new/tools/netmgr/main.c 2016-08-16 23:01:51.304430149 +0000 @@ -470,7 +470,7 @@ size_t i = 0, count = 0; NET_DNS_MODE mode; char *s1, *s2, **szDnsServersList = NULL; - char szDnsServers[1024]; + char *szDnsServers = NULL; if(!pCmdArgs) { @@ -503,7 +503,8 @@ bail_on_error(err); } - strcpy(szDnsServers, pCmdArgs->ppszCmds[3]); + err = netmgr_alloc_string(pCmdArgs->ppszCmds[3], &szDnsServers); + bail_on_error(err); if (strlen(szDnsServers) > 0) { s2 = pCmdArgs->ppszCmds[3]; @@ -549,6 +550,7 @@ } netmgr_free(szDnsServersList); } + netmgr_free(szDnsServers); return err; error: @@ -648,7 +650,7 @@ int add_servers = 0; NET_DNS_MODE mode = DNS_MODE_INVALID; char *s1, *s2, **szDnsServersList = NULL; - char szServers[2048]; + char *szServers = NULL; if(!pCmdArgs || (pCmdArgs->argc < 3)) { @@ -692,7 +694,8 @@ break; case 0: /* --servers option */ - strcpy(szServers, optarg); + err = netmgr_alloc_string(optarg, &szServers); + bail_on_error(err); if (strlen(szServers) > 0) { s2 = szServers; @@ -794,6 +797,7 @@ } netmgr_free(szDnsServersList); } + netmgr_free(szServers); return err; error: