I made a complete horlicks of the last change, fix it so it doesn't either lead

to a double free or free the item after the end of the array.
This commit is contained in:
Nicholas Marriott 2009-11-16 11:15:44 +00:00
parent 10e05f9867
commit 9f6d685c05

View File

@ -151,10 +151,6 @@ cmd_string_parse(const char *s, struct cmd_list **cmdlist, char **cause)
if (*cmdlist == NULL) if (*cmdlist == NULL)
goto out; goto out;
do
xfree(argv[argc - 1]);
while (--argc > 0);
rval = 0; rval = 0;
goto out; goto out;
case '~': case '~':
@ -189,7 +185,7 @@ out:
if (argv != NULL) { if (argv != NULL) {
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
xfree(argv[argc]); xfree(argv[i]);
xfree(argv); xfree(argv);
} }