forked from pool/coreutils
26558dd009
* src/cut.c: Instead of usig unreliable alloca() stack allocation, use heap allocation via xmalloc()+free(). (coreutils-i18n.patch) - Fix test-suite errors (bnc#798261). * tests/cp/fiemap-FMR: Fix path to src directory and declare require_valgrind_ function. (coreutils-cp-corrupt-fragmented-sparse.patch) * tests/misc/cut: Fix src/cut.c to properly pass output-delimiter tests. Synchronize cut.c related part of the i18n patch with Fedora's. Merge coreutils-i18n-infloop.patch into coreutils-i18n.patch. Merge coreutils-i18n-uninit.patch into coreutils-i18n.patch. In tests/misc/cut, do not replace the non-i18n error messages. (coreutils-i18n.patch) * tests/rm/ext3-perf: This test failed due to heavy parallel CPU and/or disk load because it is based on timeouts. Do not run the test-suite with 'make -jN. (coreutils.spec, coreutils-testsuite.spec) * Further spec changes: Run more tests: also run "very expensive" tests; add acl, python-pyinotify, strace and valgrind to the build requirements. Remove patch5 and patch6 as they are now merged into coreutils-i18n.patch (see above). (coreutils.spec, coreutils-testsuite.spec) - Maintenance changes: (coreutils.spec, coreutils-testsuite.spec) * Add perl and texinfo to the build requirements as they are needed to re-generate the man pages and the texinfo documentation. * Remove already-active "-Wall" compiler option from CFLAGS variable. * Install the compressed test-suite.log into the documentation directory of the coreutils-testsuite package (section %check and %files). * Properly guard the spec sections for the coreutils and the coreutils-testsuite package. * Update patches to reflect new line numbers. OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=172
27 lines
900 B
Diff
27 lines
900 B
Diff
While uid_t and gid_t are both unsigned, the values (uid_t) -1 and
|
|
(gid_t) -1 are reserved. A uid or gid argument of -1 to the chown(2)
|
|
system call means to leave the uid/gid unchanged. Catch this case
|
|
so that trying to set a uid or gid to -1 will result in an error.
|
|
|
|
Test cases:
|
|
|
|
chown 4294967295 file
|
|
chown :4294967295 file
|
|
chgrp 4294967295 file
|
|
|
|
Andreas Gruenbacher <agruen@suse.de>
|
|
|
|
Index: src/chgrp.c
|
|
===================================================================
|
|
--- src/chgrp.c.orig
|
|
+++ src/chgrp.c
|
|
@@ -88,7 +88,7 @@ parse_group (const char *name)
|
|
{
|
|
unsigned long int tmp;
|
|
if (! (xstrtoul (name, NULL, 10, &tmp, "") == LONGINT_OK
|
|
- && tmp <= GID_T_MAX))
|
|
+ && tmp <= GID_T_MAX && (gid_t) tmp != (gid_t) -1))
|
|
error (EXIT_FAILURE, 0, _("invalid group: %s"), quote (name));
|
|
gid = tmp;
|
|
}
|