From: Paul Eggert Date: Thu, 7 Nov 2024 00:18:54 +0000 (-0800) Subject: chroot: expand heap a bit less aggressively X-Git-Tag: v9.6~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff9b85970b825cfa4bc46b5debaa1a52b896568c;p=thirdparty%2Fcoreutils.git chroot: expand heap a bit less aggressively * src/chroot.c (parse_additional_groups, main): Prefer idx_t to size_t for sizes. (parse_additional_groups): Use xpalloc instead of x2nrealloc. --- diff --git a/src/chroot.c b/src/chroot.c index 1797a16d40..f7354ccdbf 100644 --- a/src/chroot.c +++ b/src/chroot.c @@ -93,11 +93,11 @@ setgroups (size_t size, MAYBE_UNUSED gid_t const *list) static int parse_additional_groups (char const *groups, GETGROUPS_T **pgids, - size_t *pn_gids, bool show_errors) + idx_t *pn_gids, bool show_errors) { GETGROUPS_T *gids = nullptr; - size_t n_gids_allocated = 0; - size_t n_gids = 0; + idx_t n_gids_allocated = 0; + idx_t n_gids = 0; char *buffer = xstrdup (groups); char const *tmp; int ret = 0; @@ -143,7 +143,7 @@ parse_additional_groups (char const *groups, GETGROUPS_T **pgids, } if (n_gids == n_gids_allocated) - gids = X2NREALLOC (gids, &n_gids_allocated); + gids = xpalloc (gids, &n_gids_allocated, 1, -1, sizeof *gids); gids[n_gids++] = value; } @@ -230,7 +230,7 @@ main (int argc, char **argv) uid_t uid = -1; gid_t gid = -1; GETGROUPS_T *out_gids = nullptr; - size_t n_gids = 0; + idx_t n_gids = 0; initialize_main (&argc, &argv); set_program_name (argv[0]); @@ -251,7 +251,7 @@ main (int argc, char **argv) /* Treat 'user:' just like 'user' as we lookup the primary group by default (and support doing so for UIDs as well as names. */ - size_t userlen = strlen (userspec); + idx_t userlen = strlen (userspec); if (userlen && userspec[userlen - 1] == ':') userspec[userlen - 1] = '\0'; break;