From: Todd C. Miller Date: Tue, 14 Aug 2007 19:27:27 +0000 (+0000) Subject: Deal with OSes where sizeof(gid_t) < sizeof(int). X-Git-Tag: SUDO_1_7_0~438 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9396907869a8b09ab0a5c97b7f41148496cb811;p=sudo Deal with OSes where sizeof(gid_t) < sizeof(int). --- 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