From 7116688ec5f6c48dd2f01138767dcb5512f2c4db Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Tue, 13 Aug 2024 13:49:47 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=94=A8=E3=80=8D=20fix:=20leak=20?= =?UTF-8?q?from=20heredoc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/execution.h | 4 ++-- include/parsing.h | 4 ++-- ok | 0 src/exec/heredoc.c | 15 ++++++++------- src/exec/heredoc_utils.c | 2 +- src/parsing/tokenizer/__open_redir.c | 6 +++--- src/parsing/tokenizer/__to_cmd.c | 4 ++-- src/parsing/tokenizer/tokenizer.c | 10 ++++++---- 8 files changed, 24 insertions(+), 21 deletions(-) create mode 100644 ok diff --git a/include/execution.h b/include/execution.h index 8ed5aa2..47e665c 100644 --- a/include/execution.h +++ b/include/execution.h @@ -6,7 +6,7 @@ /* By: mmoussou +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/10 01:14:10 by adjoly #+# #+# */ -/* Updated: 2024/08/10 12:43:36 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 13:49:19 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/parsing/tokenizer/__open_redir.c b/src/parsing/tokenizer/__open_redir.c index cc2a3df..18aa4a5 100644 --- a/src/parsing/tokenizer/__open_redir.c +++ b/src/parsing/tokenizer/__open_redir.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/05 23:31:09 by adjoly #+# #+# */ -/* Updated: 2024/08/06 15:29:13 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 13:43:08 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,14 +33,14 @@ t_redir_sign __to_redir_sign(char *redir_sign) return (ERROR); } -t_redir *__open_heredoc(char *filename) +t_redir *__open_heredoc(char *filename, t_list *list) { int fd; t_redir *redir; if (!filename && !*filename) return (NULL); - fd = ft_heredoc(filename); + fd = ft_heredoc(filename, list); redir = ft_calloc(sizeof(t_redir), 1); if (!redir) { diff --git a/src/parsing/tokenizer/__to_cmd.c b/src/parsing/tokenizer/__to_cmd.c index 7979be1..eeadb9b 100644 --- a/src/parsing/tokenizer/__to_cmd.c +++ b/src/parsing/tokenizer/__to_cmd.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/05 14:19:35 by adjoly #+# #+# */ -/* Updated: 2024/08/12 16:28:08 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 13:40:20 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,7 @@ t_list *__get_redir(char **content) sign = __to_redir_sign(*content); if (sign == HEREDOC) { - tmp = ft_lstnew(__open_heredoc(*(content + 1))); + tmp = ft_lstnew(__open_heredoc(*(content + 1), list)); ft_lstadd_back(&list, tmp); } else if (sign != ERROR) diff --git a/src/parsing/tokenizer/tokenizer.c b/src/parsing/tokenizer/tokenizer.c index eda5d8f..6798883 100644 --- a/src/parsing/tokenizer/tokenizer.c +++ b/src/parsing/tokenizer/tokenizer.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/18 20:13:50 by adjoly #+# #+# */ -/* Updated: 2024/08/10 17:46:54 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 13:47:48 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,12 +39,14 @@ t_list *tokenizer(char *readline, t_env *env) { ft_lstadd_back(&cmd, ft_lstnew(__to_cmd(split_argv(env_var_replace(tmp->content, - env))))); - if (((t_cmd *)ft_lstlast(cmd)->content)->infile == -2) + env))))); + if (!cmd) + return (clear_all(cmd, piped)); + if (!ft_lstlast(cmd)->content) return (clear_all(cmd, piped)); if (!cmd->next) get_list2(&cmd); - if (!ft_lstlast(cmd)->content) + if (((t_cmd *)ft_lstlast(cmd)->content)->infile == -2) return (clear_all(cmd, piped)); tmp = tmp->next; }