aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2017-06-02 17:49:49 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2017-06-02 17:49:49 -0400
commitde565a0009c8f2ef24f3bd741000fe79de122b8a (patch)
tree54f60fdf1d637cbe1ad6dc239a41133c830b81ba /src
parentFix for `make deb` fail (diff)
downloadfirejail-de565a0009c8f2ef24f3bd741000fe79de122b8a.tar.gz
firejail-de565a0009c8f2ef24f3bd741000fe79de122b8a.tar.zst
firejail-de565a0009c8f2ef24f3bd741000fe79de122b8a.zip
fix login shell functionality broken in 0.9.46
Diffstat (limited to 'src')
-rw-r--r--src/firejail/firejail.h1
-rw-r--r--src/firejail/no_sandbox.c5
-rw-r--r--src/firejail/run_symlink.c6
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,
718// programs 718// programs
719#define PATH_FNET (LIBDIR "/firejail/fnet") 719#define PATH_FNET (LIBDIR "/firejail/fnet")
720#define PATH_FIREMON (PREFIX "/bin/firemon") 720#define PATH_FIREMON (PREFIX "/bin/firemon")
721#define PATH_FIREJAIL (PREFIX "/bin/firejail")
721#define PATH_FSECCOMP (LIBDIR "/firejail/fseccomp") 722#define PATH_FSECCOMP (LIBDIR "/firejail/fseccomp")
722#define PATH_FCOPY (LIBDIR "/firejail/fcopy") 723#define PATH_FCOPY (LIBDIR "/firejail/fcopy")
723#define SBOX_STDIN_FILE "/run/firejail/mnt/sbox_stdin" 724#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) {
209 break; 209 break;
210 } 210 }
211 } 211 }
212 // if shell is /usr/bin/firejail, replace it with /bin/bash
213 if (strcmp(cfg.shell, PATH_FIREJAIL) == 0) {
214 cfg.shell = "/bin/bash";
215 prog_index = 0;
216 }
212 217
213 if (prog_index == 0) { 218 if (prog_index == 0) {
214 cfg.command_line = cfg.shell; 219 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) {
86 86
87 87
88 // start the argv[0] program in a new sandbox 88 // start the argv[0] program in a new sandbox
89 char *firejail;
90 if (asprintf(&firejail, "%s/bin/firejail", PREFIX) == -1)
91 errExit("asprintf");
92
93 // drop privileges 89 // drop privileges
94 if (setgid(getgid()) < 0) 90 if (setgid(getgid()) < 0)
95 errExit("setgid/getgid"); 91 errExit("setgid/getgid");
@@ -98,7 +94,7 @@ void run_symlink(int argc, char **argv) {
98 94
99 // run command 95 // run command
100 char *a[3 + argc]; 96 char *a[3 + argc];
101 a[0] = firejail; 97 a[0] =PATH_FIREJAIL;
102 a[1] = program; 98 a[1] = program;
103 int i; 99 int i;
104 for (i = 0; i < (argc - 1); i++) { 100 for (i = 0; i < (argc - 1); i++) {