Просмотр исходного кода

* Forgot some free() code in new cmd_newleaf feature

svn: 2295
Bryan Drewery 21 лет назад
Родитель
Сommit
63843f3c18
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      src/cmds.c

+ 6 - 3
src/cmds.c

@@ -3063,16 +3063,19 @@ static void cmd_newleaf(int idx, char *par)
       if ((p = strchr(host, '@'))) {
         hostname = ++p;
         af_type = is_dotted_ip(hostname);
-        if (af_type == AF_INET)
+        if (!ip && af_type == AF_INET)
           ip = strdup(hostname);
-        else if (af_type == AF_INET6)
+        else if (!ip6 && af_type == AF_INET6)
           ip6 = strdup(hostname);
-        else if (!strchr(hostname, '*') && !strchr(hostname, '?'))
+        else if (!bhostname && !strchr(hostname, '*') && !strchr(hostname, '?'))
           bhostname = strdup(hostname);
       }
     }
     dprintf(idx, "Bot config line (prefix host with '+' if ipv6):\n");
     dprintf(idx, "%s %s %s %s\n", handle, ip ? ip : ".", bhostname ? bhostname : ".", ip6 ? ip6 : "");
+    if (ip) free(ip);
+    if (ip6) free(ip6);
+    if (bhostname) free(bhostname);
     write_userfile(idx);
   }
 }