From: Paul Eggert Date: Wed, 7 Apr 2021 00:45:33 +0000 (-0700) Subject: group-member: minor tweak to omit a * X-Git-Tag: v1.0~2971 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=7e90795b4061e4d023c8ab4937d988dbbdbf9d15;p=gnulib.git group-member: minor tweak to omit a * * lib/group-member.c: Include intprops.h. (get_group_info): Use INT_MULTIPLY_WRAPV instead of xalloc_oversized (which does a multiplication) followed by the same multiplication. The code was OK as-is; this is just conceptual simplification, possible now that we have xalloc_count_t. * modules/group-member: Depend on intprops. --- diff --git a/ChangeLog b/ChangeLog index c68da0df85..46496bc756 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2021-04-06 Paul Eggert + group-member: minor tweak to omit a * + * lib/group-member.c: Include intprops.h. + (get_group_info): Use INT_MULTIPLY_WRAPV instead of + xalloc_oversized (which does a multiplication) followed by the + same multiplication. The code was OK as-is; this is just + conceptual simplification, possible now that we have xalloc_count_t. + * modules/group-member: Depend on intprops. + backupfile: less-aggressive buffer growth * lib/backupfile.c: Include intprops.h. (numbered_backup): Grow buffer by the usual 50%, not 100%. diff --git a/lib/group-member.c b/lib/group-member.c index 52159016ea..17bee831b4 100644 --- a/lib/group-member.c +++ b/lib/group-member.c @@ -25,6 +25,7 @@ #include #include +#include "intprops.h" #include "xalloc-oversized.h" /* Most processes have no more than this many groups, and for these @@ -53,10 +54,11 @@ get_group_info (struct group_info *gi) if (n_groups < 0) { int n_group_slots = getgroups (0, NULL); + xalloc_count_t nbytes; if (0 <= n_group_slots - && ! xalloc_oversized (n_group_slots, sizeof *gi->group)) + && ! INT_MULTIPLY_WRAPV (n_group_slots, sizeof *gi->group, &nbytes)) { - gi->group = malloc (n_group_slots * sizeof *gi->group); + gi->group = malloc (nbytes); if (gi->group) n_groups = getgroups (n_group_slots, gi->group); } diff --git a/modules/group-member b/modules/group-member index 1b743a33b8..aa56ecf7e4 100644 --- a/modules/group-member +++ b/modules/group-member @@ -9,6 +9,7 @@ Depends-on: unistd extensions getgroups [test $HAVE_GROUP_MEMBER = 0] +intprops [test $HAVE_GROUP_MEMBER = 0] xalloc-oversized [test $HAVE_GROUP_MEMBER = 0] configure.ac: