lib/gshadow.c: Use XREALLOC() instead of silently continuing on ENOMEM

We should do better, and correctly handle errors, since this is library
code.  However, I'm lazy right now, so let's die hard, and let us
improve this later.

Link: <https://github.com/shadow-maint/shadow/pull/991#discussion_r1660308154>
Reported-by: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
Alejandro Colomar
2024-06-30 23:55:56 +02:00
committed by Serge Hallyn
parent 53e1eb4045
commit 4eed3e84a1
+3 -8
View File
@@ -19,6 +19,7 @@
#include "alloc/malloc.h"
#include "alloc/realloc.h"
#include "alloc/x/xrealloc.h"
#include "prototypes.h"
#include "defines.h"
@@ -38,20 +39,14 @@ static /*@null@*/char **build_list (char *s, char **list[], size_t * nlist)
size_t nelem = *nlist, size;
while (s != NULL && *s != '\0') {
ptr = REALLOC(*list, nelem + 1, char *);
if (ptr == NULL)
return NULL;
ptr = XREALLOC(*list, nelem + 1, char *);
ptr[nelem] = strsep(&s, ",");
nelem++;
*list = ptr;
*nlist = nelem;
}
ptr = REALLOC(*list, nelem + 1, char *);
if (ptr == NULL)
return NULL;
ptr = XREALLOC(*list, nelem + 1, char *);
ptr[nelem] = NULL;
*list = ptr;