As Larry pointed out, this the off by one canbe fixed much more elegantly.
diff --git a/coreutils/chgrp.c b/coreutils/chgrp.c
index 83bb194..55e22f5 100644
--- a/coreutils/chgrp.c
+++ b/coreutils/chgrp.c
@@ -71,7 +71,7 @@
 	}
 
 	/* Ok, ready to do the deed now */
-	while (optind++ < argc-1) {
+	while (++optind < argc) {
 		if (recursive_action (argv[optind], recursiveFlag, FALSE, FALSE, 
 					fileAction, fileAction, NULL) == FALSE) {
 			return EXIT_FAILURE;