This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,HURD] hurd: compliance fixes for getgroups


Alle venerdì 27 aprile 2012, Roland McGrath ha scritto:
> > 2012-04-27  Pino Toscano  <toscano.pino@tiscali.it>
> > 
> > 	* sysdeps/mach/hurd/getgroups.c (__getgroups): Return -1 and set
> > 	EINVAL for negative `n' or less than `ngids'.
> 
> The norm is to use all caps and no quotes to mention local variable
> names.  You can also drop the (function) when it's the only function
> in the file of the same name.

Ah ok, fixed patch attached.
Where can I read about these two change log style settings (i.e. 
variables as all caps, and no (function) when it's the only one in a 
file)? I don't remember them in the official pages[1], so maybe I missed 
some documentation...

[1] http://www.gnu.org/prep/standards/html_node/Change-Logs.html

> Since I see you already have
> copyright paperwork and you're doing more than just the one change,
> would you like to get set up to commit yourself?

Given also my contributions so far, I guess that I should better need 
review for now, no?

-- 
Pino Toscano
hurd: compliance fixes for getgroups

Fail with EINVAL when the requested number of groups is negative,
or when it is positive but less than the actual number of groups.

2012-04-28  Pino Toscano  <toscano.pino@tiscali.it>

	* sysdeps/mach/hurd/getgroups.c: Return -1 and set EINVAL for
	negative N or less than NGIDS.
--- a/sysdeps/mach/hurd/getgroups.c
+++ b/sysdeps/mach/hurd/getgroups.c
@@ -31,6 +31,9 @@
   int ngids;
   void *crit;
 
+  if (n < 0)
+    return __hurd_fail (EINVAL);
+
   crit = _hurd_critical_section_lock ();
   __mutex_lock (&_hurd_id.lock);
 
@@ -54,7 +57,7 @@
       /* Now that the lock is released, we can safely copy the
 	 group set into the user's array, which might fault.  */
       if (ngids > n)
-	ngids = n;
+	return __hurd_fail (EINVAL);
       memcpy (gidset, gids, ngids * sizeof (gid_t));
     }
   else

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]