diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2023-12-17 14:16:17 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2023-12-17 14:16:17 +0100 |
commit | 2543e1e9838e03adb7f4a811815d34ccf65a3026 (patch) | |
tree | 92fd5e78541bb9c244741de5940e8332e5e983dc /src/tc-switchuser.c | |
parent | 6eddfddeb9da77b6523d8e1ebc2e75c8b5dc5ac9 (diff) | |
parent | 08dcb1504d4900cb6230c99fbbf535c63eb3b332 (diff) |
Merge branch 'release/debian/4.17-1'
Diffstat (limited to 'src/tc-switchuser.c')
-rw-r--r-- | src/tc-switchuser.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/tc-switchuser.c b/src/tc-switchuser.c index 1763527..4cc5604 100644 --- a/src/tc-switchuser.c +++ b/src/tc-switchuser.c @@ -19,7 +19,7 @@ static const struct HXoption options_table[] = { HXOPT_TABLEEND, }; -int main(int argc, const char **argv) +static int runner(int argc, const char **argv) { HX_getopt(options_table, &argc, &argv, HXOPT_USAGEONERR); const char *user = user_name != NULL ? user_name : "-"; @@ -27,12 +27,12 @@ int main(int argc, const char **argv) switch (HXproc_switch_user(user_name, group_name)) { case HXPROC_USER_NOT_FOUND: if (user_name == NULL) - abort(); /* impossible outcomes */ + return EXIT_FAILURE; /* impossible outcomes */ printf("No such user \"%s\": %s\n", user_name, strerror(errno)); break; case HXPROC_GROUP_NOT_FOUND: if (group_name == NULL || *group_name == '\0') - abort(); /* impossible outcome */ + return EXIT_FAILURE; /* impossible outcome */ printf("No such group \"%s\": %s\n", group_name, strerror(errno)); break; case HXPROC_SETUID_FAILED: @@ -64,6 +64,14 @@ int main(int argc, const char **argv) } return EXIT_SUCCESS; } + +int main(int argc, const char **argv) +{ + int ret = runner(argc, argv); + if (ret != EXIT_SUCCESS) + fprintf(stderr, "FAILED\n"); + return ret; +} #else int main(void) { |