From aca0644d53e02e02abf4e28098d16173f7ac7615 Mon Sep 17 00:00:00 2001 From: yosyo Date: Mon, 15 Jul 2024 18:46:37 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=94=A8=E3=80=8D=20fix(env/env=5F?= =?UTF-8?q?cmds):=20fixed=20invalid=20free?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/env/env_cmd.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/env/env_cmd.c b/src/env/env_cmd.c index 59e68d5..d8f3ca3 100644 --- a/src/env/env_cmd.c +++ b/src/env/env_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou next; if (!tmp_env) { - ft_envadd_back(&env, ft_envnew(name, content)); + new_content = ft_strdup(name); + if (!new_content) + return (-1); + ft_envadd_back(&env, ft_envnew(new_content, content)); return (-1); } new_content = ft_calloc(1, ft_strlen(tmp_env->content) @@ -40,13 +43,17 @@ int env_append(char *name, char *content, t_env *env) int env_edit(char *name, char *content, t_env *env) { t_env *tmp_env; + char *name_dup; tmp_env = env; while (tmp_env && ft_strcmp(tmp_env->name, name)) tmp_env = tmp_env->next; if (!tmp_env) { - ft_envadd_back(&env, ft_envnew(name, content)); + name_dup = ft_strdup(name); + if (!name_dup) + return (-1); + ft_envadd_back(&env, ft_envnew(name_dup, content)); return (-1); } free(tmp_env->content);