errx(EXIT_FAILURE, _("your user %u does not exist"),
uid);
} else {
+ errno = 0;
ctl.pw = ul_getuserpw_str(ctl.username, NULL);
if (!ctl.pw)
- errx(EXIT_FAILURE, _("user \"%s\" does not exist"),
+ err(EXIT_FAILURE, _("user \"%s\" does not exist"),
ctl.username);
}
ctl.username = ctl.pw->pw_name;
errtryhelp(EXIT_FAILURE);
}
- if (!(pw_entry = getpwuid(getuid())))
- err(EXIT_FAILURE, _("who are you?"));
+ errno = 0;
+ pw_entry = getpwuid(getuid());
+ if (!pw_entry) {
+ if (!errno)
+ errno = EINVAL;
+ err(EXIT_FAILURE, _("failed to look up current user"));
+ }
if (argc <= optind) {
if (setgid(pw_entry->pw_gid) < 0)
err(EXIT_FAILURE, _("setgid() failed"));
} else {
errno = 0;
- if (!(gr_entry = ul_getgrp_str(argv[optind++], NULL))) {
- if (errno)
- err(EXIT_FAILURE, _("no such group"));
- else
- errx(EXIT_FAILURE, _("no such group"));
- }
+ gr_entry = ul_getgrp_str(argv[optind++], NULL);
+ if (!gr_entry)
+ err(EXIT_FAILURE, _("no such group"));
if (!allow_setgid(pw_entry, gr_entry))
errx(EXIT_FAILURE, _("permission denied"));
if (setgid(gr_entry->gr_gid) < 0)
"specifying more than %d supplemental groups is not possible",
NGROUPS_MAX - 1), NGROUPS_MAX - 1);
+ errno = 0;
gr = ul_getgrp_str(name, NULL);
if (!gr)
- errx(EXIT_FAILURE, _("group %s does not exist"), name);
+ err(EXIT_FAILURE, _("group %s does not exist"), name);
DBG(MISC, ul_debug("add %s group [name=%s, GID=%d]", name, gr->gr_name, (int) gr->gr_gid));
{
uid_t uid;
+ errno = 0;
if (!ul_getuserpw_str(s, &uid) && uid == (uid_t) -1)
- errx(EXIT_FAILURE, _("failed to parse uid '%s'"), s);
+ err(EXIT_FAILURE, _("failed to parse uid '%s'"), s);
return uid;
}
{
gid_t gid;
+ errno = 0;
if (!ul_getgrp_str(s, &gid) && gid == (gid_t) -1)
- errx(EXIT_FAILURE, _("failed to parse gid '%s'"), s);
+ err(EXIT_FAILURE, _("failed to parse gid '%s'"), s);
return gid;
}