From: Alejandro Colomar Date: Mon, 4 Nov 2024 16:16:33 +0000 (+0100) Subject: lib/gshadow.c: build_list(): Fix type of parameter X-Git-Tag: 4.17.0-rc1~14 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=960947135cfcb26352f2dde35fd4a3645dbaa268;p=thirdparty%2Fshadow.git lib/gshadow.c: build_list(): Fix type of parameter list ($2) is a pointer to a list of strings. We were declaring it as an array of pointers to strings, which was bogus. It worked out of luck, because array parameters are transformed into pointers by the compiler, but it was incorrect. Just look at how we're calling this function. $ grep build_list lib/gshadow.c build_list(char *s, char ***list, size_t *nlist) sgroup.sg_adm = build_list (fields[2], &admins, &nadmins); sgroup.sg_mem = build_list (fields[3], &members, &nmembers); $ grep '^static .*\' lib/gshadow.c static /*@null@*//*@only@*/char **admins = NULL; $ grep '^static .*\' lib/gshadow.c static /*@null@*//*@only@*/char **members = NULL; Fixes: 8e167d28afd6 ("[svn-upgrade] Integrating new upstream version, shadow (4.0.8)") Signed-off-by: Alejandro Colomar --- diff --git a/lib/gshadow.c b/lib/gshadow.c index 5a89ca2fb..33ebd489d 100644 --- a/lib/gshadow.c +++ b/lib/gshadow.c @@ -36,7 +36,8 @@ static struct sgrp sgroup; #define FIELDS 4 -static /*@null@*/char **build_list (char *s, char **list[], size_t * nlist) +static /*@null@*/char ** +build_list(char *s, char ***list, size_t *nlist) { char **ptr = *list; size_t nelem = *nlist, size;