From c85c8975a33757e4bce257336218b135378e80c2 Mon Sep 17 00:00:00 2001 From: PrStein Date: Mon, 18 Apr 2022 02:56:36 +0200 Subject: [PATCH] leaks export --- srcs/built_in/export.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/srcs/built_in/export.c b/srcs/built_in/export.c index 110988a..9fb1d75 100644 --- a/srcs/built_in/export.c +++ b/srcs/built_in/export.c @@ -53,6 +53,7 @@ int ft_export_variable(t_s_cmd *cmd, char *variable) { char *dest; char *unset; + int index; if (check_variable(variable) == 1) { @@ -64,9 +65,11 @@ int ft_export_variable(t_s_cmd *cmd, char *variable) } dest = ft_strdup(variable); unset = ft_substr(dest, 0, find_len(dest, 0, '=')); - if (find_it(cmd->big_cmd->env, unset) != -1) + index = find_it(cmd->big_cmd->env, unset); + if (index != -1) { - cmd->big_cmd->env[find_it(cmd->big_cmd->env, unset)] = dest; + free (cmd->big_cmd->env[index]); + cmd->big_cmd->env[index] = dest; free(unset); return (check_return(cmd, 0)); } @@ -76,7 +79,6 @@ int ft_export_variable(t_s_cmd *cmd, char *variable) if (unset) free(unset); return (check_return(cmd, 0)); - } int ft_export(t_s_cmd *cmd)