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