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);