diff options
-rw-r--r-- | src/user_init/user_init.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/user_init/user_init.c b/src/user_init/user_init.c index ab2f1be6..8e006ea9 100644 --- a/src/user_init/user_init.c +++ b/src/user_init/user_init.c @@ -4,12 +4,14 @@ #include <unistd.h> #include <stdlib.h> +#include "helpers.h" #include "rc.h" #define USERINIT RC_LIBEXECDIR "/sh/user-init.sh" int main(int argc, char **argv) { struct passwd *user; + char *cmd; if (argc < 3) return 1; @@ -19,5 +21,6 @@ int main(int argc, char **argv) { || setuid(user->pw_uid) == -1) return 1; - execl(user->pw_shell, user->pw_shell, "-c", USERINIT, argv[2], NULL); + xasprintf(&cmd, "%s %s", USERINIT, argv[2]); + execl(user->pw_shell, user->pw_shell, "-c", cmd, NULL); } |