]> Zhao Yanbai Git Server - minix.git/commitdiff
servers/pm: Fix EFAULT check for SETGROUPS 97/597/1
authorLionel Sambuc <lionel@minix3.org>
Tue, 28 May 2013 19:08:15 +0000 (19:08 +0000)
committerLionel Sambuc <lionel@minix3.org>
Tue, 28 May 2013 19:07:04 +0000 (21:07 +0200)
The previous test would return EFAULT as soon as the group pointer
was NULL, while it is sensible when the count is also 0.

In that case, the SETGROUP syscall is expected to clear all the
group entries as the new set is empty.

Change-Id: I07b7e1d1f023a52e3035d53f7d9b42b660e039e8

servers/pm/getset.c

index 407a5a63a6d40a73fba96a2e6da67dab757a3a4a..9084b4e76ad46e43e05020ad24d9773be3e6467e 100644 (file)
@@ -141,7 +141,7 @@ int do_set()
                if (ngroups > NGROUPS_MAX || ngroups < 0) 
                        return(EINVAL);
 
-               if (m_in.groupsp == NULL) 
+               if (m_in.grp_no > 0 && m_in.groupsp == NULL)
                        return(EFAULT);
 
                r = sys_datacopy(who_e, (vir_bytes) m_in.groupsp, SELF,