diff options
author | netblue30 <netblue30@yahoo.com> | 2016-08-30 12:05:38 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2016-08-30 12:05:38 -0400 |
commit | 1de8b9257a287cfb80daeaabd56377e509efeca5 (patch) | |
tree | c17de02dd3b8b82d005f7875a5c013a0decbb1d5 /src | |
parent | Merge pull request #752 from reinerh/master (diff) | |
download | firejail-1de8b9257a287cfb80daeaabd56377e509efeca5.tar.gz firejail-1de8b9257a287cfb80daeaabd56377e509efeca5.tar.zst firejail-1de8b9257a287cfb80daeaabd56377e509efeca5.zip |
Arch Linux fix: setegid error
Diffstat (limited to 'src')
-rw-r--r-- | src/firejail/main.c | 1 | ||||
-rw-r--r-- | src/include/euid_common.h | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/firejail/main.c b/src/firejail/main.c index dbb92a899..391e86907 100644 --- a/src/firejail/main.c +++ b/src/firejail/main.c | |||
@@ -46,6 +46,7 @@ printf("time %s:%d %u\n", __FILE__, __LINE__, (uint32_t) systick); | |||
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | uid_t firejail_uid = 0; | 48 | uid_t firejail_uid = 0; |
49 | gid_t firejail_gid = 0; | ||
49 | 50 | ||
50 | #define STACK_SIZE (1024 * 1024) | 51 | #define STACK_SIZE (1024 * 1024) |
51 | static char child_stack[STACK_SIZE]; // space for child's stack | 52 | static char child_stack[STACK_SIZE]; // space for child's stack |
diff --git a/src/include/euid_common.h b/src/include/euid_common.h index de5572fb1..752df5fff 100644 --- a/src/include/euid_common.h +++ b/src/include/euid_common.h | |||
@@ -31,6 +31,7 @@ | |||
31 | } | 31 | } |
32 | 32 | ||
33 | extern uid_t firejail_uid; | 33 | extern uid_t firejail_uid; |
34 | extern uid_t firejail_gid; | ||
34 | 35 | ||
35 | 36 | ||
36 | 37 | ||
@@ -44,16 +45,18 @@ static inline void EUID_ROOT(void) { | |||
44 | static inline void EUID_USER(void) { | 45 | static inline void EUID_USER(void) { |
45 | if (seteuid(firejail_uid) == -1) | 46 | if (seteuid(firejail_uid) == -1) |
46 | errExit("seteuid"); | 47 | errExit("seteuid"); |
47 | if (setegid(firejail_uid) == -1) | 48 | if (setegid(firejail_gid) == -1) |
48 | errExit("setegid"); | 49 | errExit("setegid"); |
49 | } | 50 | } |
50 | 51 | ||
51 | static inline void EUID_PRINT(void) { | 52 | static inline void EUID_PRINT(void) { |
52 | printf("debug: uid %d, euid %d\n", getuid(), geteuid()); | 53 | printf("debug: uid %d, euid %d\n", getuid(), geteuid()); |
54 | printf("debug: gid %d, egid %d\n", getgid(), getegid()); | ||
53 | } | 55 | } |
54 | 56 | ||
55 | static inline void EUID_INIT(void) { | 57 | static inline void EUID_INIT(void) { |
56 | firejail_uid = getuid(); | 58 | firejail_uid = getuid(); |
59 | firejail_gid = getgid(); | ||
57 | } | 60 | } |
58 | 61 | ||
59 | #endif | 62 | #endif |