From c9396907869a8b09ab0a5c97b7f41148496cb811 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 14 Aug 2007 19:27:27 +0000 Subject: [PATCH] Deal with OSes where sizeof(gid_t) < sizeof(int). --- parse.c | 3 ++- sudo.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/parse.c b/parse.c index ecdc2bef2..de77f52e1 100644 --- a/parse.c +++ b/parse.c @@ -222,7 +222,8 @@ display_privs(v, pw) if (pw != sudo_user.pw) { (void) initgroups(pw->pw_name, pw->pw_gid); if ((user_ngroups = getgroups(0, NULL)) > 0) { - user_groups = erealloc3(user_groups, user_ngroups, sizeof(gid_t)); + user_groups = erealloc3(user_groups, user_ngroups, + MAX(sizeof(gid_t), sizeof(int))); if (getgroups(user_ngroups, user_groups) < 0) log_error(USE_ERRNO|MSG_ONLY, "can't get group vector"); } else diff --git a/sudo.c b/sudo.c index 2f17db4a2..691164ef0 100644 --- a/sudo.c +++ b/sudo.c @@ -616,7 +616,7 @@ init_vars(sudo_mode, envp) #ifdef HAVE_GETGROUPS if ((user_ngroups = getgroups(0, NULL)) > 0) { - user_groups = emalloc2(user_ngroups, sizeof(gid_t)); + user_groups = emalloc2(user_ngroups, MAX(sizeof(gid_t), sizeof(int))); if (getgroups(user_ngroups, user_groups) < 0) log_error(USE_ERRNO|MSG_ONLY, "can't get group vector"); } else -- 2.40.0