[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/3] group-member: minor tweak to omit a *
From: |
Paul Eggert |
Subject: |
[PATCH 3/3] group-member: minor tweak to omit a * |
Date: |
Tue, 6 Apr 2021 17:52:11 -0700 |
* 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.
---
ChangeLog | 8 ++++++++
lib/group-member.c | 6 ++++--
modules/group-member | 1 +
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c68da0df8..46496bc75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2021-04-06 Paul Eggert <eggert@cs.ucla.edu>
+ 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 52159016e..17bee831b 100644
--- a/lib/group-member.c
+++ b/lib/group-member.c
@@ -25,6 +25,7 @@
#include <sys/types.h>
#include <stdlib.h>
+#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 1b743a33b..aa56ecf7e 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:
--
2.27.0