From 08debcb6f23d51b4e7bf87b1e15edc0b5cf4cc1c Mon Sep 17 00:00:00 2001 From: mdev9 Date: Wed, 28 Feb 2024 18:55:03 +0100 Subject: [PATCH] fixed some leaks and error codes --- srcs/exec.c | 18 ++++++++++++++++-- srcs/here_doc.c | 6 +++--- srcs/parsing.c | 2 +- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/srcs/exec.c b/srcs/exec.c index c6db42f..d41cd89 100755 --- a/srcs/exec.c +++ b/srcs/exec.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 14:12:49 by tomoron #+# #+# */ -/* Updated: 2024/02/28 12:47:01 by marde-vr ### ########.fr */ +/* Updated: 2024/02/28 18:53:41 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -201,12 +201,26 @@ void pipe_child(t_msh *msh, char **cmd_args, int i) || !ft_strcmp(msh->cmds->token, "alias") || !ft_strcmp(msh->cmds->token, "unalias") || !ft_strcmp(msh->cmds->token, "exit") || exec_builtin(msh))) + { + while(i >= 0) + { + free(msh->fds[i]); + i--; + } + free(cmd_args); ft_exit(msh, 1); + } if (msh->cmds->token) execve(msh->cmds->token, cmd_args, env_to_char_tab(msh->env)); close(0); close(1); close(2); + while(i >= 0) + { + free(msh->fds[i]); + i--; + } + free(cmd_args); ft_exit(msh, 1); } @@ -383,7 +397,7 @@ void get_out_type(t_msh *msh) if (msh->out_fd == -1) { perror("open"); - ft_exit(msh, 2); + ft_exit(msh, 1); } } } diff --git a/srcs/here_doc.c b/srcs/here_doc.c index 880eb85..ebfc743 100644 --- a/srcs/here_doc.c +++ b/srcs/here_doc.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/26 20:20:31 by marde-vr #+# #+# */ -/* Updated: 2024/02/27 19:23:08 by marde-vr ### ########.fr */ +/* Updated: 2024/02/28 17:39:18 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -93,7 +93,7 @@ void handle_here_doc(t_msh *msh, char *eof) if (msh->in_fd == -1) { perror("open"); - ft_exit(msh, 2); + ft_exit(msh, 1); } eof = ft_strjoin_free(eof, "\n", 1); if (!eof) @@ -104,6 +104,6 @@ void handle_here_doc(t_msh *msh, char *eof) if (msh->in_fd == -1) { perror("open"); - ft_exit(msh, 2); + ft_exit(msh, 1); } } diff --git a/srcs/parsing.c b/srcs/parsing.c index 6dc531a..e88c86e 100755 --- a/srcs/parsing.c +++ b/srcs/parsing.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/09 15:26:01 by tomoron #+# #+# */ -/* Updated: 2024/02/21 12:57:40 by marde-vr ### ########.fr */ +/* Updated: 2024/02/28 18:48:27 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h"