From de565a0009c8f2ef24f3bd741000fe79de122b8a Mon Sep 17 00:00:00 2001 From: netblue30 Date: Fri, 2 Jun 2017 17:49:49 -0400 Subject: fix login shell functionality broken in 0.9.46 --- src/firejail/firejail.h | 1 + src/firejail/no_sandbox.c | 5 +++++ src/firejail/run_symlink.c | 6 +----- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index 91b9c7be7..6f0a5aa7b 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h @@ -718,6 +718,7 @@ void build_appimage_cmdline(char **command_line, char **window_title, int argc, // programs #define PATH_FNET (LIBDIR "/firejail/fnet") #define PATH_FIREMON (PREFIX "/bin/firemon") +#define PATH_FIREJAIL (PREFIX "/bin/firejail") #define PATH_FSECCOMP (LIBDIR "/firejail/fseccomp") #define PATH_FCOPY (LIBDIR "/firejail/fcopy") #define SBOX_STDIN_FILE "/run/firejail/mnt/sbox_stdin" diff --git a/src/firejail/no_sandbox.c b/src/firejail/no_sandbox.c index b37c5abf7..07c42006d 100644 --- a/src/firejail/no_sandbox.c +++ b/src/firejail/no_sandbox.c @@ -209,6 +209,11 @@ void run_no_sandbox(int argc, char **argv) { break; } } + // if shell is /usr/bin/firejail, replace it with /bin/bash + if (strcmp(cfg.shell, PATH_FIREJAIL) == 0) { + cfg.shell = "/bin/bash"; + prog_index = 0; + } if (prog_index == 0) { cfg.command_line = cfg.shell; diff --git a/src/firejail/run_symlink.c b/src/firejail/run_symlink.c index a9298a33f..ed885d3b1 100644 --- a/src/firejail/run_symlink.c +++ b/src/firejail/run_symlink.c @@ -86,10 +86,6 @@ void run_symlink(int argc, char **argv) { // start the argv[0] program in a new sandbox - char *firejail; - if (asprintf(&firejail, "%s/bin/firejail", PREFIX) == -1) - errExit("asprintf"); - // drop privileges if (setgid(getgid()) < 0) errExit("setgid/getgid"); @@ -98,7 +94,7 @@ void run_symlink(int argc, char **argv) { // run command char *a[3 + argc]; - a[0] = firejail; + a[0] =PATH_FIREJAIL; a[1] = program; int i; for (i = 0; i < (argc - 1); i++) { -- cgit v1.2.3-54-g00ecf