--- tftpd/src/exec.c 2014/02/17 10:12:26 1.1.2.4 +++ tftpd/src/exec.c 2014/02/17 14:28:02 1.1.2.5 @@ -6,7 +6,7 @@ void * execProg(sched_task_t *task) { pid_t pid, res; - const char *str; + const char *str, *addr; char port[STRSIZ] = { [0 ... STRSIZ - 1] = 0 }, opc[STRSIZ] = { [0 ... STRSIZ - 1] = 0 }; ait_val_t v = AIT_VAL_INITIALIZER(v); @@ -25,13 +25,16 @@ execProg(sched_task_t *task) case 0: snprintf(opc, STRSIZ, "%hu", (u_short) TASK_DATLEN(task)); snprintf(port, STRSIZ, "%hu", (u_short) e_n2port(&cli.addr)); - execl(_PATH_BSHELL, _PATH_BSHELL, "-c", str, TASK_ARG(task), opc, - cli.file, cli.mode, e_n2addr(&cli.addr, &v), port, NULL); + addr = e_n2addr(&cli.addr, &v); + EVERBOSE(1, "Execute %s %s %s %s %s %s %s", str, TASK_ARG(task), opc, + cli.file, cli.mode, addr, port); + execl(_PATH_BSHELL, _PATH_BSHELL, str, TASK_ARG(task), opc, + cli.file, cli.mode, addr, port, NULL); AIT_FREE_VAL(&v); _exit(127); break; default: - EVERBOSE(1, "Execute %s", str); + EVERBOSE(2, "Wait to finish executed program %s", str); do { res = waitpid(pid, &stat, 0); } while (res == -1 && errno == EINTR);