]> git.dkaiser.de - 42/minishell.git/commitdiff
Fix SEGV on invalid redirection
authorDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Fri, 13 Sep 2024 14:23:04 +0000 (16:23 +0200)
committerDominik Kaiser <dkaiser@1-C-7.42heilbronn.de>
Fri, 13 Sep 2024 14:23:04 +0000 (16:23 +0200)
src/new_node.c
src/print_ast.c

index 6da9f9e3cf10bafbdf6f569f5df0aca054afbbff..5c770aaf189e6bb7ebd3234cb57431ecbf2b4d3d 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/27 11:21:03 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/11 12:22:45 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/09/13 16:18:29 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -43,10 +43,14 @@ t_node      *new_cmd_node(char **args, t_redirection redirs[2])
        if (node == NULL)
                return (NULL);
        node->content.cmd.args = args;
-       node->content.cmd.redirs[0] = redirs[0];
-       node->content.cmd.redirs[1] = redirs[1];
-       free(redirs);
-       return (node);
+       if (redirs != NULL)
+       {
+               node->content.cmd.redirs[0] = redirs[0];
+               node->content.cmd.redirs[1] = redirs[1];
+               free(redirs);
+               return (node);
+       }
+       return (NULL);
 }
 
 t_node *new_string_node(char *string)
index a511246d1be5b7666d3d9d14022f4106e782014b..e1f01586a9c383315eaab4270cf738ebcf6eda03 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/07/22 15:16:53 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/11 12:26:00 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/09/13 16:21:32 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -27,7 +27,9 @@ void  print_ast(t_node *ast)
 
 static void    print_ast_rec(t_node *ast, int indent)
 {
-       if (ast->type == CMD_NODE)
+       if (!ast)
+               panic("Parsing error");
+       else if (ast->type == CMD_NODE)
                print_cmd_node(ast, indent);
        else if (ast->type == PIPE_NODE)
        {