diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/firejail/firejail.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h index 755ed4979..7be04f782 100644 --- a/src/firejail/firejail.h +++ b/src/firejail/firejail.h | |||
@@ -100,6 +100,27 @@ | |||
100 | ASSERT_PERMS_FD(fd, uid, gid, (mode));\ | 100 | ASSERT_PERMS_FD(fd, uid, gid, (mode));\ |
101 | } while (0) | 101 | } while (0) |
102 | 102 | ||
103 | #define SET_PERMS_FD(fd, uid, gid, mode) \ | ||
104 | do { \ | ||
105 | if (fchmod(fd, (mode)) == -1) errExit("chmod");\ | ||
106 | if (fchown(fd, uid, gid) == -1) errExit("chown");\ | ||
107 | } while (0) | ||
108 | #define SET_PERMS_STREAM(stream, uid, gid, mode) \ | ||
109 | do { \ | ||
110 | int fd = fileno(stream);\ | ||
111 | if (fd == -1) errExit("fileno");\ | ||
112 | SET_PERMS_FD(fd, uid, gid, (mode));\ | ||
113 | } while (0) | ||
114 | #define SET_PERMS_STREAM_NOERR(stream, uid, gid, mode) \ | ||
115 | do { \ | ||
116 | int fd = fileno(stream);\ | ||
117 | if (fd == -1) continue;\ | ||
118 | int rv = fchmod(fd, (mode));\ | ||
119 | (void) rv;\ | ||
120 | rv = fchown(fd, uid, gid);\ | ||
121 | (void) rv;\ | ||
122 | } while (0) | ||
123 | |||
103 | // main.c | 124 | // main.c |
104 | typedef struct bridge_t { | 125 | typedef struct bridge_t { |
105 | // on the host | 126 | // on the host |