aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAge
* Add support for custom AppArmor profiles (--apparmor=)Libravatar Азалия Смарагдова2022-08-05
|
* Merge pull request #5259 from smitsohu/nsLibravatar smitsohu2022-07-31
|\ | | | | introduce new option restrict-namespaces
| * introduce new option restrict-namespacesLibravatar smitsohu2022-07-23
| |
| * protocol filter: add x32 ABI handlingLibravatar smitsohu2022-07-19
| |
* | Merge pull request #5271 from smitsohu/nnpLibravatar smitsohu2022-07-31
|\ \ | | | | | | improve force-nonewprivs security guarantees
| * | improve force-nonewprivs security guaranteesLibravatar smitsohu2022-07-24
| | |
* | | Make list of paths const to fix a false positive of gcc analyzerLibravatar Reiner Herrmann2022-07-30
| | |
* | | zero-initialize two variablesLibravatar Reiner Herrmann2022-07-30
|/ /
* / apparmor cleanupLibravatar smitsohu2022-07-20
|/
* refresh syscall groups (#5188)Libravatar smitsohu2022-07-17
| | | | | | | | | | | | now covers syscalls up to including process_madvise (440) group assignment was blindly copied from systemd: https://github.com/systemd/systemd/blob/729d2df8065ac90ac606e1fff91dc2d588b2795d/src/shared/seccomp-util.c#L305 the only exception is close_range, which was added to both @basic-io and @file-system this commit adds the following syscalls to the default blacklist: pidfd_getfd,fsconfig,fsmount,fsopen,fspick,move_mount,open_tree
* refresh and sort syscall tablesLibravatar smitsohu2022-07-15
| | | | | | produced using commands documented in src/lib/syscall.c: awk '/__NR_/ { print "{ \"" gensub("__NR_", "", "g", $2) "\", " $3 " },"; }' < /usr/include/x86_64-linux-gnu/asm/unistd_64.h awk '/__NR_/ { print "{ \"" gensub("__NR_", "", "g", $2) "\", " $3 " },"; }' < /usr/include/x86_64-linux-gnu/asm/unistd_32.h
* tweaksLibravatar smitsohu2022-07-12
|
* always assert runfile mode and ownershipLibravatar smitsohu2022-07-12
|
* minor sandbox lock improvementsLibravatar smitsohu2022-07-11
|
* cleanupLibravatar smitsohu2022-07-11
|
* remove dependency on sendfile syscallLibravatar smitsohu2022-07-11
|
* simplify put optionLibravatar smitsohu2022-07-11
| | | | | copy using file descriptors, similar to implementation of get option
* Warn when encountering EIO during remountLibravatar Albert Kim2022-07-07
| | | | | | Instead of simply erroring out, just warn the user that a filesystem was unable to be remounted due to EIO. This is helpful for FUSE filesystems which might be buggy or having issues.
* Merge pull request #5219 from kmk3/build-reduce-config-filesLibravatar netblue302022-06-30
|\ | | | | build: reduce autoconf input files from 32 to 2
| * makefiles: add generated files as dependenciesLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit ("makefiles: stop failing when config.mk does not exist", 2022-06-23), make will not immediately fail when trying to build a target without having the proper compile-time flags (which are defined on common.mk). For example, when running the command below: make distclean && make It will throw an error only after (mis-)compiling multiple objects. So add a dependency on config.mk on every target that uses output variables (such as @NAME@ / $(NAME)) on its recipe. And add a dependency on config.sh on targets that call shell scripts that use output variables (such as @NAME@ / $NAME). Also, add a recipe for config.mk / config.sh telling to run ./configure, to make it a bit more obvious just in case. With this commit, make will abort earlier, by detecting that the config.mk / config.sh dependency does not exist. This happens before trying to execute the recipe. This also makes the dependencies more accurate, since if config.mk (which defines some CFLAGS) is changed, the CFLAGS may also have changed, so a target that uses CFLAGS should probably be considered out of date in this case anyway. Relates to #5140.
| * makefiles: stop failing when config.mk does not existLibravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows running `make clean` and `make distclean` (and possibly others) without having to run ./configure beforehand. Note that some packaging-related targets still depend on the existence of generated files. For example: * dist: config.mk * deb: config.sh Commands used to search and replace: $ git grep -Elz 'include *([^ ]*/)?config.mk' | xargs -0 -I '{}' \ sh -c "printf '%s\n' \ \"\$(sed -E 's|^include *(([^ ]*/)?config.mk)|-include \1|' '{}')\" >'{}'" Relates to #5140.
| * build: reduce autoconf input files from 32 to 2Libravatar Kelvin M. Klann2022-06-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Configure summary: autoconf essentially only parses configure.ac and generates the configure script (that is, the "./configure" shell script). The latter is what actually checks what is available on the system and internally sets the value of the output variables. It then, for every filename foo in AC_CONFIG_FILES (and for every output variable name BAR in AC_SUBST), reads foo.in, replaces every occurrence of `@BAR@` with the value of the shell variable `$BAR` and generates the file foo from the result. After this, configure is finished and `make` could be executed to start the build. Now that (as of #5140) all output variables are only defined on config.mk.in and on config.sh.in, there is no need to generate any makefile nor any other mkfile or shell script at configure time. So rename every "Makefile.in" to "Makefile", mkdeb.sh.in to mkdeb.sh, src/common.mk.in to src/common.mk and leave just config.mk and config.sh as the files to be generated at configure time. This allows editing and committing all makefiles directly, without potentially having to run ./configure in between. Commands used to rename the makefiles: $ git ls-files -z -- '*Makefile.in' | xargs -0 -I '{}' sh -c \ "git mv '{}' \"\$(dirname '{}')/Makefile\"" Additionally, from my (rudimentary) testing, this commit reduces the time it takes to run ./configure by about 20~25% compared to commit 72ece92ea ("Transmission fixes: drop private-lib (#5213)", 2022-06-22). Environment: dash 0.5.11.5-1, gcc 12.1.0-2, Artix Linux, ext4 on an HDD. Commands used for benchmarking each commit: $ : >time_configure && ./configure && make distclean && for i in $(seq 1 10); do { time -p ./configure; } 2>>time_configure; done $ grep real time_configure | awk '{ total += $2 } END { print total/NR }'
* | fix disabled private-lib in /etc/firejail/firejail.configLibravatar netblue302022-06-23
| |
* | disabled private-lib in /etc/firejail/firejail.configLibravatar netblue302022-06-23
| |
* | nettrace dixesLibravatar netblue302022-06-23
|/
* deprecating --shell (3) (#5196)Libravatar netblue302022-06-21
|
* deprecating --shell (2) (#5196)Libravatar netblue302022-06-20
|
* compile fixLibravatar netblue302022-06-20
|
* deprecating --shell (#5196)Libravatar netblue302022-06-20
|
* shell none set as default (4)Libravatar netblue302022-06-19
|
* shell none set as default (3)Libravatar netblue302022-06-19
|
* shell none set as default (2)Libravatar netblue302022-06-19
|
* shell none set as defaultLibravatar netblue302022-06-19
|
* removing guess_shell() function and using instead the shell configured in ↵Libravatar netblue302022-06-19
| | | | the password database (/etc/passwd file)
* Merge branch 'master' of ssh://github.com/netblue30/firejailLibravatar netblue302022-06-18
|\
| * errno.c: fix reference to extract_errnos.sh in commentLibravatar Kelvin M. Klann2022-06-18
| | | | | | | | | | | | | | See src/tools/extract_errnos.sh. Added on commit 081d1fbf2 ("Add seccomp errno filter support", 2015-09-23) / PR #66.
* | seccomp-log support in firejail.configLibravatar netblue302022-06-18
|/
* remving src/fgitLibravatar netblue302022-06-17
|
* build: fix file mode of shell scripts (644 -> 755)Libravatar Kelvin M. Klann2022-06-16
| | | | | | | | | | | | | | | | | | | | | Some shell scripts are not executable, so fix their file modes: $ git grep -Elz '^#!/bin/(ba)?sh' | xargs -0 -I '{}' \ chmod +x '{}' Files changed: * src/fgit/fgit-uninstall.sh * src/tools/extract_errnos.sh Note: I have manually checked that the files above are indeed intended to be executable directly and not just sourced, as a script of the latter kind could also contain a shebang (for example, to help ensure proper syntax highlighting). Misc: The affected files were added on commit e46dd3e95 ("git-install", 2017-02-04) and on commit 081d1fbf2 ("Add seccomp errno filter support", 2015-09-23) / PR #66, respectively.
* more on removing cgroups (#5200)Libravatar netblue302022-06-16
|
* disable chroot by default in /etc/firejail/firejail.configLibravatar netblue302022-06-13
|
* more on disable cgroupsLibravatar netblue302022-06-13
|
* disable cgroup codeLibravatar netblue302022-06-13
|
* makefiles: include config.mk instead of common.mk where possibleLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | common.mk contains definitions for building programs and it includes config.mk. Some makefiles that include common.mk do not contain any targets for building programs. They depend only on configure-time variable definitions (which are defined on config.mk) rather than anything specific to common.mk. So change their includes of common.mk to config.mk.
* makefiles: deduplicate configure-time vars into new config.mk.inLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | Currently, the configure-time variables (that is, the ones that assign to placeholders, such as "@HAVE_MAN@", which are set/replaced at configure-time) are defined on multiple files (such as on Makefile.in and on common.mk.in). To avoid duplication, centralize these variables on a single file (config.mk.in) and replace all of the other definitions of them with an include of config.mk.
* makefiles: define root dir and include relative to itLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A non-absolute path on an include command is always treated as being relative to the directory in which "make" was started in, rather than being relative to the makefile that contains the command. For example, given the following project structure and file contents: * Makefile: include src/foo.mk * src/foo.mk: include bar.mk * src/bar.mk: Running "make" on the root project directory (that is, where "Makefile" is) yields the following: src/foo.mk:1: bar.mk: No such file or directory As "bar.mk" in "include bar.mk" is relative to the current (process) directory (that is, "./bar.mk") and not to where foo.mk is located in ("./src/bar.mk"). So on every makefile that contains an include command, define the root project directory in the ROOT variable and always include relative to it, to later enable any included mkfiles to include other mkfiles without having to worry about the correct path. Commands used to search and replace: $ git grep -Flz 'include ../common.mk' -- src | xargs -0 -I '{}' sh -c \ "printf '%s\n' \"\`sed 's|include ../common.mk|ROOT = ../..\ninclude \$(ROOT)/src/common.mk|' '{}'\`\" >'{}'" Environment: GNU make 4.3-3.1 on Artix Linux
* common.mk.in: fix comment about file usage intentLibravatar Kelvin M. Klann2022-06-12
| | | | | | | | | | | | | | | | | | It currently claims to contain "common definitions for all makefiles", but it is not included by all makefiles under src/ and it contains variable definitions that may possibly clash with the ones defined on certain makefiles. Mainly, the following makefiles (which are used for building shared objects) use a different set of CFLAGS compared to src/common.mk.in: * src/libpostexecseccomp/Makefile.in * src/libtrace/Makefile.in * src/libtracelog/Makefile.in Given the contents of common.mk.in, it seems to be intended only for makefiles that build C programs and/or non-shared objects (which are most of, but not all of the makefiles under src/), so put that in the comment instead.
* fix typo in firejail-welcome.shLibravatar PizzaDude2022-06-10
|
* fix typoLibravatar Reiner Herrmann2022-06-09
|
* CVE-2022-31214: fixing the fix, one more timeLibravatar smitsohu2022-06-08
| | | | | | | | | the previous commit "CVE-2022-31214: fixing the fix" made private-etc=fonts,fonts and similar commands fail with an error fix that regression by tolerating already existing directories