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:
committed by
Serge Hallyn
parent
53e1eb4045
commit
4eed3e84a1
+3
-8
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user