This fixes an error on OpenBSD,
% chown 1000:1000 yes.c
./chown: getgrnam 1000: No such file or directory
---
chown.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/chown.c b/chown.c
index d7dc8e0..748ce97 100644
--- a/chown.c
+++ b/chown.c
@@ -79,26 +79,12 @@ main(int argc, char *argv[])
*group++ = '\0';
if (owner && *owner) {
- errno = 0;
pw = getpwnam(owner);
- if (pw) {
- uid = pw->pw_uid;
- } else {
- if (errno)
- eprintf("getpwnam %s:", owner);
- uid = estrtonum(owner, 0, UINT_MAX);
- }
+ uid = pw ? pw->pw_uid : estrtonum(owner, 0, UINT_MAX);
}
if (group && *group) {
- errno = 0;
gr = getgrnam(group);
- if (gr) {
- gid = gr->gr_gid;
- } else {
- if (errno)
- eprintf("getgrnam %s:", group);
- gid = estrtonum(group, 0, UINT_MAX);
- }
+ gid = gr ? gr->gr_gid : estrtonum(group, 0, UINT_MAX);
}
if (uid == (uid_t)-1 && gid == (gid_t)-1)
usage();
--
2.21.0