aboutsummaryrefslogtreecommitdiff
path: root/src/free_node.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-07-22 15:07:59 +0200
committerDominik Kaiser2024-07-22 15:07:59 +0200
commit47a68b82e0463f5dfd4bd8a9c4b32b4c5fbcb610 (patch)
tree35815deb503793aee2a6e97f8b421c8158e048ec /src/free_node.c
parent8f386bcd29425b96017c1e9b2cd1bbd670939563 (diff)
downloadminishell-47a68b82e0463f5dfd4bd8a9c4b32b4c5fbcb610.tar.gz
minishell-47a68b82e0463f5dfd4bd8a9c4b32b4c5fbcb610.zip
Fix errors and make the parser work
Diffstat (limited to 'src/free_node.c')
-rw-r--r--src/free_node.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/free_node.c b/src/free_node.c
index 2dfeb7d..f8677d5 100644
--- a/src/free_node.c
+++ b/src/free_node.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/27 11:41:46 by dkaiser #+# #+# */
-/* Updated: 2024/07/09 11:37:11 by dkaiser ### ########.fr */
+/* Updated: 2024/07/22 14:30:14 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -40,15 +40,17 @@ static void free_cmd_node(t_node *node)
int i;
i = 0;
- while (node->content.cmd.args[i] != NULL)
+ while (node->content.cmd.args != NULL && node->content.cmd.args[i] != NULL)
{
free(node->content.cmd.args[i]);
i++;
}
free(node->content.cmd.args);
free_assigns(node->content.cmd.assigns);
- free(node->content.cmd.redirs[0].specifier);
- free(node->content.cmd.redirs[1].specifier);
+ if (node->content.cmd.redirs[0].type != 0 && node->content.cmd.redirs[0].specifier != NULL)
+ free(node->content.cmd.redirs[0].specifier);
+ if (node->content.cmd.redirs[1].type != 0 && node->content.cmd.redirs[0].specifier != NULL)
+ free(node->content.cmd.redirs[1].specifier);
}
static void free_assigns(t_assign **assigns)
@@ -56,10 +58,11 @@ static void free_assigns(t_assign **assigns)
int i;
i = 0;
+ if (assigns == 0)
+ return ;
while (assigns[i] != NULL)
{
free(assigns[i]->var);
- free(assigns[i]->value);
free(assigns[i]);
i++;
}