summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
898c7aa)
Fail with EINVAL when the requested number of groups is negative,
or when it is positive but less than the actual number of groups.
* sysdeps/mach/hurd/lremovexattr.c: New file, copied from removexattr.c
with O_NOLINK passed to __file_name_lookup.
* sysdeps/mach/hurd/lremovexattr.c: New file, copied from removexattr.c
with O_NOLINK passed to __file_name_lookup.
+ * sysdeps/mach/hurd/getgroups.c: Return -1 and set EINVAL for
+ negative N or less than NGIDS.
+
2012-07-20 Joseph Myers <joseph@codesourcery.com>
* elf/Makefile (check-data): Remove.
2012-07-20 Joseph Myers <joseph@codesourcery.com>
* elf/Makefile (check-data): Remove.
+ if (n < 0)
+ return __hurd_fail (EINVAL);
+
crit = _hurd_critical_section_lock ();
__mutex_lock (&_hurd_id.lock);
crit = _hurd_critical_section_lock ();
__mutex_lock (&_hurd_id.lock);
/* Now that the lock is released, we can safely copy the
group set into the user's array, which might fault. */
if (ngids > n)
/* Now that the lock is released, we can safely copy the
group set into the user's array, which might fault. */
if (ngids > n)
+ return __hurd_fail (EINVAL);
memcpy (gidset, gids, ngids * sizeof (gid_t));
}
else
memcpy (gidset, gids, ngids * sizeof (gid_t));
}
else