summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rwxr-xr-xtests/chgrp/basic9
2 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d4b0c4fa..ce931ee48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,15 @@
* Version 6.0-cvs.
+ * src/chown-core.c (RC_do_ordinary_chown): New enum value.
+ (restricted_chown): Return it, if the file cannot be accessed due
+ to EPERM, or if no uid or gid are required, or if the file is
+ neither a directory nor a regular file. Rewrite to avoid gotos.
+ (change_file_owner): Handle RC_do_ordinary_chown case.
+ Rewrite to avoid gotos.
+ * tests/chgrp/basic: Make sure we can change the group of
+ inaccessible files.
+
* src/date.c (usage): Explain %g, %G, and %V a bit better.
2006-01-02 Jim Meyering <jim@meyering.net>
diff --git a/tests/chgrp/basic b/tests/chgrp/basic
index fc4eb5a1c..d4971194c 100755
--- a/tests/chgrp/basic
+++ b/tests/chgrp/basic
@@ -74,8 +74,15 @@ test "$VERBOSE" = yes && set +x
chgrp -R $g2 symlink
chown --from=:$g1 -c :$g2 f
+ # Make sure we can change the group of inaccessible files.
+ chmod a-r f
+ chown --from=:$g2 -c :$g1 f
+ chmod 0 f
+ chown --from=:$g1 -c :$g2 f
+
# chown() must not be optimized away even when
# the file's owner and group already have the desired value.
+ rm -f f g
touch f g
chgrp $g1 f g
chgrp $g2 g
@@ -115,6 +122,8 @@ changed ownership of `f' to :G2
changed group of `symlink' to G1
changed ownership of `f' to :G2
changed ownership of `f' to :G2
+changed ownership of `f' to :G1
+changed ownership of `f' to :G2
f
g
EOF