diff options
author | Aleksey Manevich <manevich.aleksey@gmail.com> | 2016-08-24 18:12:37 +0300 |
---|---|---|
committer | Aleksey Manevich <manevich.aleksey@gmail.com> | 2016-08-24 18:12:37 +0300 |
commit | f3a20e13cebedffb3af7cee6b5b9e2b0e4d56fb9 (patch) | |
tree | 1741a1e0aeed3848b5de3e4b981fa26ee3b415fc /src | |
parent | 0.9.42~2 testing (diff) | |
download | firejail-f3a20e13cebedffb3af7cee6b5b9e2b0e4d56fb9.tar.gz firejail-f3a20e13cebedffb3af7cee6b5b9e2b0e4d56fb9.tar.zst firejail-f3a20e13cebedffb3af7cee6b5b9e2b0e4d56fb9.zip |
SET_PERMS macros
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 |