diff options
author | startx2017 <vradu.startx@yandex.com> | 2018-09-04 08:28:14 -0400 |
---|---|---|
committer | startx2017 <vradu.startx@yandex.com> | 2018-09-04 08:28:14 -0400 |
commit | e8989dc95bc55644661ded3c2b68212e296d19bd (patch) | |
tree | 7ecdf9603d4bd354902db65d8bd7ca944f993447 /src/firecfg | |
parent | mainline merges (diff) | |
download | firejail-e8989dc95bc55644661ded3c2b68212e296d19bd.tar.gz firejail-e8989dc95bc55644661ded3c2b68212e296d19bd.tar.zst firejail-e8989dc95bc55644661ded3c2b68212e296d19bd.zip |
mainline merge
Diffstat (limited to 'src/firecfg')
-rw-r--r-- | src/firecfg/desktop_files.c | 12 | ||||
-rw-r--r-- | src/firecfg/firecfg.config | 4 | ||||
-rw-r--r-- | src/firecfg/main.c | 5 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/firecfg/desktop_files.c b/src/firecfg/desktop_files.c index 71b39390e..f09a23977 100644 --- a/src/firecfg/desktop_files.c +++ b/src/firecfg/desktop_files.c | |||
@@ -144,6 +144,8 @@ void fix_desktop_files(char *homedir) { | |||
144 | perror("opendir"); | 144 | perror("opendir"); |
145 | fprintf(stderr, "Warning: cannot access /usr/share/applications directory, desktop files fixing skipped...\n"); | 145 | fprintf(stderr, "Warning: cannot access /usr/share/applications directory, desktop files fixing skipped...\n"); |
146 | free(user_apps_dir); | 146 | free(user_apps_dir); |
147 | if (dir) | ||
148 | closedir(dir); | ||
147 | return; | 149 | return; |
148 | } | 150 | } |
149 | 151 | ||
@@ -182,7 +184,9 @@ void fix_desktop_files(char *homedir) { | |||
182 | } | 184 | } |
183 | 185 | ||
184 | fseek(fp, 0, SEEK_END); | 186 | fseek(fp, 0, SEEK_END); |
185 | size_t size = ftell(fp); | 187 | long size = ftell(fp); |
188 | if (size == -1) | ||
189 | errExit("ftell"); | ||
186 | fseek(fp, 0, SEEK_SET); | 190 | fseek(fp, 0, SEEK_SET); |
187 | char *buf = malloc(size + 1); | 191 | char *buf = malloc(size + 1); |
188 | if (!buf) | 192 | if (!buf) |
@@ -266,12 +270,16 @@ void fix_desktop_files(char *homedir) { | |||
266 | 270 | ||
267 | if (stat(outname, &sb) == 0) { | 271 | if (stat(outname, &sb) == 0) { |
268 | printf(" %s skipped: file exists\n", filename); | 272 | printf(" %s skipped: file exists\n", filename); |
273 | if (change_exec) | ||
274 | free(change_exec); | ||
269 | continue; | 275 | continue; |
270 | } | 276 | } |
271 | 277 | ||
272 | FILE *fpin = fopen(filename, "r"); | 278 | FILE *fpin = fopen(filename, "r"); |
273 | if (!fpin) { | 279 | if (!fpin) { |
274 | fprintf(stderr, "Warning: cannot open /usr/share/applications/%s\n", filename); | 280 | fprintf(stderr, "Warning: cannot open /usr/share/applications/%s\n", filename); |
281 | if (change_exec) | ||
282 | free(change_exec); | ||
275 | continue; | 283 | continue; |
276 | } | 284 | } |
277 | 285 | ||
@@ -279,6 +287,8 @@ void fix_desktop_files(char *homedir) { | |||
279 | if (!fpout) { | 287 | if (!fpout) { |
280 | fprintf(stderr, "Warning: cannot open ~/.local/share/applications/%s\n", outname); | 288 | fprintf(stderr, "Warning: cannot open ~/.local/share/applications/%s\n", outname); |
281 | fclose(fpin); | 289 | fclose(fpin); |
290 | if (change_exec) | ||
291 | free(change_exec); | ||
282 | continue; | 292 | continue; |
283 | } | 293 | } |
284 | fprintf(fpout, "# converted by firecfg\n"); | 294 | fprintf(fpout, "# converted by firecfg\n"); |
diff --git a/src/firecfg/firecfg.config b/src/firecfg/firecfg.config index 0bbafb343..676c2d90a 100644 --- a/src/firecfg/firecfg.config +++ b/src/firecfg/firecfg.config | |||
@@ -10,6 +10,7 @@ Discord | |||
10 | DiscordCanary | 10 | DiscordCanary |
11 | FossaMail | 11 | FossaMail |
12 | Fritzing | 12 | Fritzing |
13 | JDownloader | ||
13 | Mathematica | 14 | Mathematica |
14 | Natron | 15 | Natron |
15 | Telegram | 16 | Telegram |
@@ -94,6 +95,7 @@ deadbeef | |||
94 | deluge | 95 | deluge |
95 | dex2jar | 96 | dex2jar |
96 | dia | 97 | dia |
98 | dig | ||
97 | digikam | 99 | digikam |
98 | dillo | 100 | dillo |
99 | dino | 101 | dino |
@@ -217,6 +219,7 @@ inox | |||
217 | iridium | 219 | iridium |
218 | iridium-browser | 220 | iridium-browser |
219 | jd-gui | 221 | jd-gui |
222 | jdownloader | ||
220 | jitsi | 223 | jitsi |
221 | k3b | 224 | k3b |
222 | kaffeine | 225 | kaffeine |
@@ -442,6 +445,7 @@ weechat | |||
442 | weechat-curses | 445 | weechat-curses |
443 | wesnoth | 446 | wesnoth |
444 | wget | 447 | wget |
448 | whois | ||
445 | wine | 449 | wine |
446 | wire-desktop | 450 | wire-desktop |
447 | wireshark | 451 | wireshark |
diff --git a/src/firecfg/main.c b/src/firecfg/main.c index 298314d4f..810af6ff2 100644 --- a/src/firecfg/main.c +++ b/src/firecfg/main.c | |||
@@ -318,13 +318,14 @@ int main(int argc, char **argv) { | |||
318 | 318 | ||
319 | // user setup | 319 | // user setup |
320 | char *user = get_user(); | 320 | char *user = get_user(); |
321 | assert(user); | ||
321 | uid_t uid; | 322 | uid_t uid; |
322 | gid_t gid; | 323 | gid_t gid; |
323 | char *home = get_homedir(user, &uid, &gid); | 324 | char *home = get_homedir(user, &uid, &gid); |
324 | 325 | ||
325 | 326 | ||
326 | // check for --bindir | 327 | // check for --bindir |
327 | for (i = i; i < argc; i++) { | 328 | for (i = 1; i < argc; i++) { |
328 | if (strncmp(argv[i], "--bindir=", 9) == 0) { | 329 | if (strncmp(argv[i], "--bindir=", 9) == 0) { |
329 | if (strncmp(argv[i] + 9, "~/", 2) == 0) { | 330 | if (strncmp(argv[i] + 9, "~/", 2) == 0) { |
330 | if (asprintf(&arg_bindir, "%s/%s", home, argv[i] + 11) == -1) | 331 | if (asprintf(&arg_bindir, "%s/%s", home, argv[i] + 11) == -1) |
@@ -430,7 +431,7 @@ int main(int argc, char **argv) { | |||
430 | set_links_firecfg(); | 431 | set_links_firecfg(); |
431 | 432 | ||
432 | // add user to firejail access database - only for root | 433 | // add user to firejail access database - only for root |
433 | if (user && getuid() == 0) { | 434 | if (getuid() == 0) { |
434 | printf("\nAdding user %s to Firejail access database in %s/firejail.users\n", user, SYSCONFDIR); | 435 | printf("\nAdding user %s to Firejail access database in %s/firejail.users\n", user, SYSCONFDIR); |
435 | firejail_user_add(user); | 436 | firejail_user_add(user); |
436 | } | 437 | } |