From 887cb6f3269f6d68f7f29bb508ad917bc1841260 Mon Sep 17 00:00:00 2001 From: Anonymus Raccoon Date: Sun, 24 May 2020 23:23:44 +0200 Subject: [PATCH] Adding free --- src/redirections/redirection_manager.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/redirections/redirection_manager.c b/src/redirections/redirection_manager.c index a95cd95..3c90fe2 100644 --- a/src/redirections/redirection_manager.c +++ b/src/redirections/redirection_manager.c @@ -100,16 +100,16 @@ bool command_format_is_invalid(char **cmds, env_t *env, int *return_values) int eval_raw_cmd(char *cmd, env_t *env) { int *return_values = NULL; - char **cmds = NULL; + char **cmds = split_str(cmd, (char *[]){";", "||", "&&", NULL}); + char **const_cmd = cmds; int ret = 0; return_values = get_return_separator(cmd); - cmds = split_str(cmd, (char *[]){";", "||", "&&", NULL}); cmds = remove_leading_entries(cmds); - if (!cmds) + if (!cmds || !return_values) return (-1); if (command_format_is_invalid(cmds, env, return_values)) - return (0); + return (free(const_cmd), free(return_values), 0); for (int i = 0; cmds[i]; i++) { if ((return_values[i] == 0 && get_return(my_getenv(env->vars, "?"))) || (return_values[i] == 1 && !get_return(my_getenv(env->vars, "?")))){ @@ -117,5 +117,7 @@ int eval_raw_cmd(char *cmd, env_t *env) } else if (run_with_redirections(cmds[i], env, NULL)) ret = -1; } + free(const_cmd); + free(return_values); return (ret); } \ No newline at end of file