diff --git a/src/exec/exec_split_cmd.c b/src/exec/exec_split_cmd.c index 1905052..3d28895 100644 --- a/src/exec/exec_split_cmd.c +++ b/src/exec/exec_split_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou infile, STDIN_FILENO); if (cmd->infile != STDIN_FILENO) close(cmd->infile); - status += dup2(cmd->outfile, STDOUT_FILENO); + if (status == -1) + exit(-1); + status = dup2(cmd->outfile, STDOUT_FILENO); if (cmd->outfile != STDOUT_FILENO) close(cmd->outfile); close(pipe_fd[0]); close(pipe_fd[1]); - if (status) - exit(-1); - execve(cmd->cmd, cmd->argv, env); + if (status != -1) + execve(cmd->cmd, cmd->argv, env); exit(-1); } return (0); @@ -85,6 +86,8 @@ void print_return_value(int return_code) if (WIFSIGNALED(return_code)) { code = WTERMSIG(return_code); + if (!sigmsg[code]) + return ; if (WCOREDUMP(return_code)) printf("minishell : %s %s\n", sigmsg[code], ERROR_COREDUMP); else