strdup_safe returns null if source was null;

environment needs to check for NULL
This commit is contained in:
whaffman 2025-03-04 10:58:11 +01:00
parent 8178757d98
commit f8236d14d1
2 changed files with 49 additions and 37 deletions

View File

@ -6,34 +6,44 @@
/* By: willem <willem@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/08 13:59:48 by willem #+# #+# */
/* Updated: 2025/02/26 16:09:20 by whaffman ######## odam.nl */
/* Updated: 2025/03/04 10:44:41 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "minishell.h"
static char *create_variable(t_minishell *msh, t_environment *env)
{
char *var;
size_t len;
len = ft_strlen(env->name) + ft_strlen(env->value) + 2;
var = malloc_safe(msh, len);
ft_strlcpy(var, env->name, len);
ft_strlcat(var, "=", len);
ft_strlcat(var, env->value, len);
return (var);
}
char **environment_get_arr(t_minishell *msh)
{
char **arr;
t_environment *env;
int i;
t_list *environment;
t_list *env;
environment = msh->environment;
env = msh->environment;
arr = malloc_safe(msh,
sizeof(char *) * (ft_lstsize(environment) + 1));
sizeof(char *) * (ft_lstsize(env) + 1));
i = 0;
while (environment != NULL)
while (env != NULL)
{
env = (t_environment *)environment->content;
arr[i] = malloc_safe(msh,
ft_strlen(env->name) + ft_strlen(env->value) + 2);
ft_strlcpy(arr[i], env->name, ft_strlen(env->name) + 1);
ft_strlcat(arr[i], "=", ft_strlen(env->name) + 2);
ft_strlcat(arr[i], env->value,
ft_strlen(env->name) + ft_strlen(env->value) + 2);
environment = environment->next;
i++;
if (((t_environment *)env->content)->value != NULL
&& ((t_environment *)env->content)->name != NULL)
{
arr[i] = create_variable(msh, (t_environment *)env->content);
i++;
}
env = env->next;
}
arr[i] = NULL;
return (arr);

View File

@ -6,7 +6,7 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/20 18:01:27 by whaffman #+# #+# */
/* Updated: 2025/02/20 18:04:53 by whaffman ######## odam.nl */
/* Updated: 2025/03/04 09:59:41 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -16,6 +16,8 @@ char *ft_strdup_safe(t_minishell *msh, const char *str)
{
char *new_str;
if (!str)
return (NULL);
new_str = ft_strdup(str);
check_malloc(msh, new_str);
return (new_str);