Index: pure-ftpd-1.0.47/src/simpleconf.c =================================================================== --- pure-ftpd-1.0.47/src/simpleconf.c +++ pure-ftpd-1.0.47/src/simpleconf.c 2018-01-23 09:36:22.420859660 +0100 @@ -676,9 +676,10 @@ { char **argv = NULL; int argc = 0; + char **argv_tmp = NULL; + char *arg = NULL; + int i; - *argc_p = 0; - *argv_p = NULL; if ((argv = malloc(sizeof *argv)) == NULL || (app_name = strdup(app_name)) == NULL) { sc_argv_free(argc, argv); @@ -691,6 +692,24 @@ sc_argv_free(argc, argv); return -1; } + + for (i = 2; i < *argc_p; ++i) { + ++argc; + arg = strdup((*argv_p)[i]); + if (arg == NULL) { + return -1; + } + if ((argv_tmp = realloc(argv, (sizeof arg) * + ((size_t) argc + 1))) == NULL) { + return -1; + } + argv = argv_tmp; + argv[argc - 1] = arg; + } + if (*argc_p > 2) { + argv[argc] = NULL; + } + *argc_p = argc; *argv_p = argv;