creategid() already prints a precise warning in each error case, there is no good reason for printing another generic/wrong error message when it returns.
Index: user.c =================================================================== RCS file: /home/vcs/cvs/openbsd/src/usr.sbin/user/user.c,v retrieving revision 1.81 diff -u -p -r1.81 user.c --- user.c 16 Apr 2011 07:41:08 -0000 1.81 +++ user.c 10 Sep 2011 13:52:14 -0000 @@ -2059,8 +2059,7 @@ groupadd(int argc, char **argv) } openlog("groupadd", LOG_PID, LOG_USER); if (!creategid(*argv, gid, "")) { - errx(EXIT_FAILURE, "can't add group: problems with %s file", - _PATH_GROUP); + exit(EXIT_FAILURE); } return EXIT_SUCCESS; }