diff --git a/libftasm/ft_lstnew.c b/libftasm/ft_lstnew.c index d0891919..b2083566 100644 --- a/libftasm/ft_lstnew.c +++ b/libftasm/ft_lstnew.c @@ -5,21 +5,25 @@ t_list *ft_lstnew(void const *content, size_t content_size) t_list *link; size_t i; - link->next = NULL; if (!content) { + link = malloc(1); + if (!link) + return (NULL); + link->next = NULL; link->content_size = 0; link->content = NULL; } else { - link->content_size = content_size; - link->content = ft_memalloc(content_size); - if (!link->content) + link = ft_memalloc(sizeof(t_list) + content_size); + if (!link) return (NULL); + link->content_size = content_size; + link->next = NULL; i = -1; while (++i < content_size) ((char *)link->content)[i] = ((char *)content)[i]; } - return (link) + return (link); }