mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-16 18:24:31 +02:00
Make getpwnam/getgrnam error messages more user-friendly.
This commit is contained in:
parent
ac9d1d0b1a
commit
07e2a38c4d
@ -243,10 +243,14 @@ int main(int argc, char **argv)
|
|||||||
struct group *gr = getgrnam(group.CStr());
|
struct group *gr = getgrnam(group.CStr());
|
||||||
|
|
||||||
if (!gr) {
|
if (!gr) {
|
||||||
|
if (errno == 0) {
|
||||||
|
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid group specified: " + group));
|
||||||
|
} else {
|
||||||
BOOST_THROW_EXCEPTION(posix_error()
|
BOOST_THROW_EXCEPTION(posix_error()
|
||||||
<< boost::errinfo_api_function("getgrnam")
|
<< boost::errinfo_api_function("getgrnam")
|
||||||
<< boost::errinfo_errno(errno));
|
<< boost::errinfo_errno(errno));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (setgid(gr->gr_gid) < 0) {
|
if (setgid(gr->gr_gid) < 0) {
|
||||||
BOOST_THROW_EXCEPTION(posix_error()
|
BOOST_THROW_EXCEPTION(posix_error()
|
||||||
@ -262,10 +266,14 @@ int main(int argc, char **argv)
|
|||||||
struct passwd *pw = getpwnam(user.CStr());
|
struct passwd *pw = getpwnam(user.CStr());
|
||||||
|
|
||||||
if (!pw) {
|
if (!pw) {
|
||||||
|
if (errno == 0) {
|
||||||
|
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid user specified: " + user));
|
||||||
|
} else {
|
||||||
BOOST_THROW_EXCEPTION(posix_error()
|
BOOST_THROW_EXCEPTION(posix_error()
|
||||||
<< boost::errinfo_api_function("getpwnam")
|
<< boost::errinfo_api_function("getpwnam")
|
||||||
<< boost::errinfo_errno(errno));
|
<< boost::errinfo_errno(errno));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (setuid(pw->pw_uid) < 0) {
|
if (setuid(pw->pw_uid) < 0) {
|
||||||
BOOST_THROW_EXCEPTION(posix_error()
|
BOOST_THROW_EXCEPTION(posix_error()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user