gssd: Use setgroups32 syscall, if available. BUG:FIXED:340
diff mbox series

Message ID 20200101181349.12248-1-markuschaaf@gmail.com
State New
Headers show
Series
  • gssd: Use setgroups32 syscall, if available. BUG:FIXED:340
Related show

Commit Message

Markus Schaaf Jan. 1, 2020, 6:13 p.m. UTC
This closes a bug on older 32-bit platforms, where the 16-bit setgroups
syscall has been replaced by setgroups32 and is not available anymore.

Signed-off-by: Markus Schaaf <markuschaaf@gmail.com>

(Personal note: Reporting a trivial bug and getting a fix upstream in
nfs-utils is like running the gauntlet, for the uninitiated average user.)

BR

---
 utils/gssd/gssd_proc.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Steve Dickson Jan. 3, 2020, 4:28 p.m. UTC | #1
On 1/1/20 1:13 PM, Markus Schaaf wrote:
> This closes a bug on older 32-bit platforms, where the 16-bit setgroups
> syscall has been replaced by setgroups32 and is not available anymore.
> 
> Signed-off-by: Markus Schaaf <markuschaaf@gmail.com>
Committed... (tag nfs-utils-2-4-3-rc4)

> 
> (Personal note: Reporting a trivial bug and getting a fix upstream in
> nfs-utils is like running the gauntlet, for the uninitiated average user.)
I'm sorry this was a "gauntlet"... but I simply can not take patches that
are only posted in the bz... More eyes are better than my eyes! :-) 

Please feel free to ping me privately if the process is becoming a 
pain... I'll more that willing to work with you to smooth things out.

steved.

> 
> BR
> 
> ---
>  utils/gssd/gssd_proc.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
> index bfcf3f09..9ba16af0 100644
> --- a/utils/gssd/gssd_proc.c
> +++ b/utils/gssd/gssd_proc.c
> @@ -437,7 +437,11 @@ change_identity(uid_t uid)
>  	int res;
>  
>  	/* drop list of supplimentary groups first */
> +#ifdef __NR_setgroups32
> +	if (syscall(SYS_setgroups32, 0, 0) != 0) {
> +#else
>  	if (syscall(SYS_setgroups, 0, 0) != 0) {
> +#endif
>  		printerr(0, "WARNING: unable to drop supplimentary groups!");
>  		return errno;
>  	}
>

Patch
diff mbox series

diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
index bfcf3f09..9ba16af0 100644
--- a/utils/gssd/gssd_proc.c
+++ b/utils/gssd/gssd_proc.c
@@ -437,7 +437,11 @@  change_identity(uid_t uid)
 	int res;
 
 	/* drop list of supplimentary groups first */
+#ifdef __NR_setgroups32
+	if (syscall(SYS_setgroups32, 0, 0) != 0) {
+#else
 	if (syscall(SYS_setgroups, 0, 0) != 0) {
+#endif
 		printerr(0, "WARNING: unable to drop supplimentary groups!");
 		return errno;
 	}