script_core 0.2.2 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +41 -45
- data/.travis.yml +2 -1
- data/Gemfile +3 -3
- data/README.md +7 -1
- data/bootstrap.sh +2 -2
- data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
- data/ext/enterprise_script_service/libseccomp/README.md +21 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
- data/ext/enterprise_script_service/mruby/.gitignore +3 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
- data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/README.md +6 -2
- data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
- data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
- data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
- data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +3 -214
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +62 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
- data/ext/enterprise_script_service/mruby/src/array.c +25 -11
- data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
- data/ext/enterprise_script_service/mruby/src/class.c +48 -32
- data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
- data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
- data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
- data/ext/enterprise_script_service/mruby/src/error.c +58 -7
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
- data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
- data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
- data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
- data/ext/enterprise_script_service/mruby/src/load.c +56 -30
- data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
- data/ext/enterprise_script_service/mruby/src/object.c +23 -5
- data/ext/enterprise_script_service/mruby/src/print.c +27 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/state.c +34 -11
- data/ext/enterprise_script_service/mruby/src/string.c +93 -56
- data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
- data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +15 -24
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
- data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
- data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
- data/ext/enterprise_script_service/msgpack/README.md +3 -2
- data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
- data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
- data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
- data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
- data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
- data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
- data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
- data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
- data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
- data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
- data/lib/script_core/engine.rb +24 -5
- data/lib/script_core/executable.rb +4 -3
- data/lib/script_core/result.rb +1 -5
- data/lib/script_core/service_channel.rb +1 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +2 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- metadata +68 -30
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
- data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#
|
|
2
|
+
# libseccomp regression test automation data
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2013 Red Hat <pmoore@redhat.com>
|
|
5
|
+
# Author: Paul Moore <paul@paul-moore.com>
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
test type: bpf-sim
|
|
9
|
+
|
|
10
|
+
# Testname Arch Syscall Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Result
|
|
11
|
+
34-sim-basic_denylist all read 0 0x856B008 10 N N N KILL
|
|
12
|
+
34-sim-basic_denylist all read 1-10 0x856B008 10 N N N ALLOW
|
|
13
|
+
34-sim-basic_denylist all write 1-2 0x856B008 10 N N N KILL
|
|
14
|
+
34-sim-basic_denylist all write 3-10 0x856B008 10 N N N ALLOW
|
|
15
|
+
34-sim-basic_denylist all close N N N N N N KILL
|
|
16
|
+
34-sim-basic_denylist all rt_sigreturn N N N N N N KILL
|
|
17
|
+
34-sim-basic_denylist all open 0x856B008 4 N N N N ALLOW
|
|
18
|
+
34-sim-basic_denylist x86 0-2 N N N N N N ALLOW
|
|
19
|
+
34-sim-basic_denylist x86 7-172 N N N N N N ALLOW
|
|
20
|
+
34-sim-basic_denylist x86 174-350 N N N N N N ALLOW
|
|
21
|
+
34-sim-basic_denylist x86_64 4-14 N N N N N N ALLOW
|
|
22
|
+
34-sim-basic_denylist x86_64 16-350 N N N N N N ALLOW
|
|
23
|
+
|
|
24
|
+
test type: bpf-sim-fuzz
|
|
25
|
+
|
|
26
|
+
# Testname StressCount
|
|
27
|
+
34-sim-basic_denylist 50
|
|
28
|
+
|
|
29
|
+
test type: bpf-valgrind
|
|
30
|
+
|
|
31
|
+
# Testname
|
|
32
|
+
34-sim-basic_denylist
|
|
@@ -7,31 +7,31 @@
|
|
|
7
7
|
|
|
8
8
|
test type: bpf-sim
|
|
9
9
|
|
|
10
|
-
# Testname Arch
|
|
11
|
-
36-sim-ipc_syscalls +x86 ipc 1 N N N N N ALLOW
|
|
12
|
-
36-sim-ipc_syscalls +x86 ipc 2 N N N N N ALLOW
|
|
13
|
-
36-sim-ipc_syscalls +x86 ipc 3 N N N N N ALLOW
|
|
14
|
-
36-sim-ipc_syscalls +x86 ipc 4 N N N N N ALLOW
|
|
15
|
-
36-sim-ipc_syscalls +x86 ipc 11 N N N N N ALLOW
|
|
16
|
-
36-sim-ipc_syscalls +x86 ipc 12 N N N N N ALLOW
|
|
17
|
-
36-sim-ipc_syscalls +x86 ipc 13 N N N N N ALLOW
|
|
18
|
-
36-sim-ipc_syscalls +x86 ipc 14 N N N N N ALLOW
|
|
19
|
-
36-sim-ipc_syscalls +x86 ipc 21 N N N N N ALLOW
|
|
20
|
-
36-sim-ipc_syscalls +x86 ipc 22 N N N N N ALLOW
|
|
21
|
-
36-sim-ipc_syscalls +x86 ipc 23 N N N N N ALLOW
|
|
22
|
-
36-sim-ipc_syscalls +x86 ipc 24 N N N N N ALLOW
|
|
23
|
-
36-sim-ipc_syscalls +x86_64
|
|
24
|
-
36-sim-ipc_syscalls +x86_64
|
|
25
|
-
36-sim-ipc_syscalls +x86_64
|
|
26
|
-
36-sim-ipc_syscalls +x86_64
|
|
27
|
-
36-sim-ipc_syscalls +x86_64
|
|
28
|
-
36-sim-ipc_syscalls +x86_64
|
|
29
|
-
36-sim-ipc_syscalls +x86_64
|
|
30
|
-
36-sim-ipc_syscalls +x86_64
|
|
31
|
-
36-sim-ipc_syscalls +x86_64
|
|
32
|
-
36-sim-ipc_syscalls +x86_64
|
|
33
|
-
36-sim-ipc_syscalls +x86_64
|
|
34
|
-
36-sim-ipc_syscalls +x86_64
|
|
10
|
+
# Testname Arch Syscall Arg0 Arg1 Arg2 Arg3 Arg4 Arg5 Result
|
|
11
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 1 N N N N N ALLOW
|
|
12
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 2 N N N N N ALLOW
|
|
13
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 3 N N N N N ALLOW
|
|
14
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 4 N N N N N ALLOW
|
|
15
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 11 N N N N N ALLOW
|
|
16
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 12 N N N N N ALLOW
|
|
17
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 13 N N N N N ALLOW
|
|
18
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 14 N N N N N ALLOW
|
|
19
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 21 N N N N N ALLOW
|
|
20
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 22 N N N N N ALLOW
|
|
21
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 23 N N N N N ALLOW
|
|
22
|
+
36-sim-ipc_syscalls +x86,+ppc64le ipc 24 N N N N N ALLOW
|
|
23
|
+
36-sim-ipc_syscalls +x86_64 semop N N N N N N ALLOW
|
|
24
|
+
36-sim-ipc_syscalls +x86_64 semget N N N N N N ALLOW
|
|
25
|
+
36-sim-ipc_syscalls +x86_64 semctl N N N N N N ALLOW
|
|
26
|
+
36-sim-ipc_syscalls +x86_64 semtimedop N N N N N N ALLOW
|
|
27
|
+
36-sim-ipc_syscalls +x86_64 msgsnd N N N N N N ALLOW
|
|
28
|
+
36-sim-ipc_syscalls +x86_64 msgrcv N N N N N N ALLOW
|
|
29
|
+
36-sim-ipc_syscalls +x86_64 msgget N N N N N N ALLOW
|
|
30
|
+
36-sim-ipc_syscalls +x86_64 msgctl N N N N N N ALLOW
|
|
31
|
+
36-sim-ipc_syscalls +x86_64 shmat N N N N N N ALLOW
|
|
32
|
+
36-sim-ipc_syscalls +x86_64 shmdt N N N N N N ALLOW
|
|
33
|
+
36-sim-ipc_syscalls +x86_64 shmget N N N N N N ALLOW
|
|
34
|
+
36-sim-ipc_syscalls +x86_64 shmctl N N N N N N ALLOW
|
|
35
35
|
|
|
36
36
|
test type: bpf-valgrind
|
|
37
37
|
|
|
@@ -54,14 +54,35 @@ int main(int argc, char *argv[])
|
|
|
54
54
|
if (api != 3)
|
|
55
55
|
return -7;
|
|
56
56
|
|
|
57
|
+
rc = seccomp_api_set(4);
|
|
58
|
+
if (rc != 0)
|
|
59
|
+
return -8;
|
|
60
|
+
api = seccomp_api_get();
|
|
61
|
+
if (api != 4)
|
|
62
|
+
return -9;
|
|
63
|
+
|
|
64
|
+
rc = seccomp_api_set(5);
|
|
65
|
+
if (rc != 0)
|
|
66
|
+
return -10;
|
|
67
|
+
api = seccomp_api_get();
|
|
68
|
+
if (api != 5)
|
|
69
|
+
return -11;
|
|
70
|
+
|
|
71
|
+
rc = seccomp_api_set(6);
|
|
72
|
+
if (rc != 0)
|
|
73
|
+
return -12;
|
|
74
|
+
api = seccomp_api_get();
|
|
75
|
+
if (api != 6)
|
|
76
|
+
return -13;
|
|
77
|
+
|
|
57
78
|
/* Attempt to set a high, invalid API level */
|
|
58
79
|
rc = seccomp_api_set(1024);
|
|
59
80
|
if (rc != -EINVAL)
|
|
60
|
-
return -
|
|
81
|
+
return -1001;
|
|
61
82
|
/* Ensure that the previously set API level didn't change */
|
|
62
83
|
api = seccomp_api_get();
|
|
63
|
-
if (api !=
|
|
64
|
-
return -
|
|
84
|
+
if (api != 6)
|
|
85
|
+
return -1002;
|
|
65
86
|
|
|
66
87
|
return 0;
|
|
67
88
|
}
|
|
@@ -50,6 +50,21 @@ def test():
|
|
|
50
50
|
if api != 3:
|
|
51
51
|
raise RuntimeError("Failed getting API level 3")
|
|
52
52
|
|
|
53
|
+
set_api(4)
|
|
54
|
+
api = get_api()
|
|
55
|
+
if api != 4:
|
|
56
|
+
raise RuntimeError("Failed getting API level 4")
|
|
57
|
+
|
|
58
|
+
set_api(5)
|
|
59
|
+
api = get_api()
|
|
60
|
+
if api != 5:
|
|
61
|
+
raise RuntimeError("Failed getting API level 5")
|
|
62
|
+
|
|
63
|
+
set_api(6)
|
|
64
|
+
api = get_api()
|
|
65
|
+
if api != 6:
|
|
66
|
+
raise RuntimeError("Failed getting API level 6")
|
|
67
|
+
|
|
53
68
|
# Attempt to set a high, invalid API level
|
|
54
69
|
try:
|
|
55
70
|
set_api(1024)
|
|
@@ -59,7 +74,7 @@ def test():
|
|
|
59
74
|
raise RuntimeError("Missing failure when setting invalid API level")
|
|
60
75
|
# Ensure that the previously set API level didn't change
|
|
61
76
|
api = get_api()
|
|
62
|
-
if api !=
|
|
77
|
+
if api != 6:
|
|
63
78
|
raise RuntimeError("Failed getting old API level after setting an invalid API level")
|
|
64
79
|
|
|
65
80
|
test()
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
#include "util.h"
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
static const unsigned int
|
|
34
|
+
static const unsigned int allowlist[] = {
|
|
35
35
|
SCMP_SYS(clone),
|
|
36
36
|
SCMP_SYS(exit),
|
|
37
37
|
SCMP_SYS(exit_group),
|
|
@@ -75,8 +75,8 @@ int main(int argc, char *argv[])
|
|
|
75
75
|
if (ctx == NULL)
|
|
76
76
|
return ENOMEM;
|
|
77
77
|
|
|
78
|
-
for (i = 0; i < sizeof(
|
|
79
|
-
rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW,
|
|
78
|
+
for (i = 0; i < sizeof(allowlist) / sizeof(allowlist[0]); i++) {
|
|
79
|
+
rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, allowlist[i], 0);
|
|
80
80
|
if (rc != 0)
|
|
81
81
|
goto out;
|
|
82
82
|
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seccomp Library test program
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2019 Cisco Systems, Inc. <pmoore2@cisco.com>
|
|
5
|
+
* Author: Paul Moore <paul@paul-moore.com>
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* This library is free software; you can redistribute it and/or modify it
|
|
10
|
+
* under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
11
|
+
* published by the Free Software Foundation.
|
|
12
|
+
*
|
|
13
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
|
14
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
16
|
+
* for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
19
|
+
* along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include <sys/types.h>
|
|
23
|
+
#include <sys/wait.h>
|
|
24
|
+
#include <unistd.h>
|
|
25
|
+
#include <seccomp.h>
|
|
26
|
+
#include <signal.h>
|
|
27
|
+
#include <syscall.h>
|
|
28
|
+
#include <errno.h>
|
|
29
|
+
#include <stdlib.h>
|
|
30
|
+
|
|
31
|
+
#include "util.h"
|
|
32
|
+
|
|
33
|
+
#define MAGIC 0x1122334455667788UL
|
|
34
|
+
|
|
35
|
+
int main(int argc, char *argv[])
|
|
36
|
+
{
|
|
37
|
+
int rc, fd = -1, status;
|
|
38
|
+
struct seccomp_notif *req = NULL;
|
|
39
|
+
struct seccomp_notif_resp *resp = NULL;
|
|
40
|
+
scmp_filter_ctx ctx = NULL;
|
|
41
|
+
pid_t pid = 0;
|
|
42
|
+
|
|
43
|
+
ctx = seccomp_init(SCMP_ACT_ALLOW);
|
|
44
|
+
if (ctx == NULL)
|
|
45
|
+
return ENOMEM;
|
|
46
|
+
|
|
47
|
+
rc = seccomp_rule_add(ctx, SCMP_ACT_NOTIFY, SCMP_SYS(getpid), 0, NULL);
|
|
48
|
+
if (rc)
|
|
49
|
+
goto out;
|
|
50
|
+
|
|
51
|
+
rc = seccomp_load(ctx);
|
|
52
|
+
if (rc < 0)
|
|
53
|
+
goto out;
|
|
54
|
+
|
|
55
|
+
rc = seccomp_notify_fd(ctx);
|
|
56
|
+
if (rc < 0)
|
|
57
|
+
goto out;
|
|
58
|
+
fd = rc;
|
|
59
|
+
|
|
60
|
+
pid = fork();
|
|
61
|
+
if (pid == 0)
|
|
62
|
+
exit(syscall(SCMP_SYS(getpid)) != MAGIC);
|
|
63
|
+
|
|
64
|
+
rc = seccomp_notify_alloc(&req, &resp);
|
|
65
|
+
if (rc)
|
|
66
|
+
goto out;
|
|
67
|
+
|
|
68
|
+
rc = seccomp_notify_receive(fd, req);
|
|
69
|
+
if (rc)
|
|
70
|
+
goto out;
|
|
71
|
+
if (req->data.nr != SCMP_SYS(getpid)) {
|
|
72
|
+
rc = -EFAULT;
|
|
73
|
+
goto out;
|
|
74
|
+
}
|
|
75
|
+
rc = seccomp_notify_id_valid(fd, req->id);
|
|
76
|
+
if (rc)
|
|
77
|
+
goto out;
|
|
78
|
+
|
|
79
|
+
resp->id = req->id;
|
|
80
|
+
resp->val = MAGIC;
|
|
81
|
+
resp->error = 0;
|
|
82
|
+
resp->flags = 0;
|
|
83
|
+
rc = seccomp_notify_respond(fd, resp);
|
|
84
|
+
if (rc)
|
|
85
|
+
goto out;
|
|
86
|
+
|
|
87
|
+
if (waitpid(pid, &status, 0) != pid) {
|
|
88
|
+
rc = -EFAULT;
|
|
89
|
+
goto out;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!WIFEXITED(status)) {
|
|
93
|
+
rc = -EFAULT;
|
|
94
|
+
goto out;
|
|
95
|
+
}
|
|
96
|
+
if (WEXITSTATUS(status)) {
|
|
97
|
+
rc = -EFAULT;
|
|
98
|
+
goto out;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
out:
|
|
102
|
+
if (fd >= 0)
|
|
103
|
+
close(fd);
|
|
104
|
+
if (pid)
|
|
105
|
+
kill(pid, SIGKILL);
|
|
106
|
+
seccomp_notify_free(req, resp);
|
|
107
|
+
seccomp_release(ctx);
|
|
108
|
+
|
|
109
|
+
if (rc != 0)
|
|
110
|
+
return (rc < 0 ? -rc : rc);
|
|
111
|
+
return 160;
|
|
112
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Seccomp Library test program
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2019 Cisco Systems, Inc. <pmoore2@cisco.com>
|
|
7
|
+
# Author: Paul Moore <paul@paul-moore.com>
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
#
|
|
11
|
+
# This library is free software; you can redistribute it and/or modify it
|
|
12
|
+
# under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
13
|
+
# published by the Free Software Foundation.
|
|
14
|
+
#
|
|
15
|
+
# This library is distributed in the hope that it will be useful, but WITHOUT
|
|
16
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
18
|
+
# for more details.
|
|
19
|
+
#
|
|
20
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
21
|
+
# along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
import argparse
|
|
25
|
+
import os
|
|
26
|
+
import signal
|
|
27
|
+
import sys
|
|
28
|
+
|
|
29
|
+
import util
|
|
30
|
+
|
|
31
|
+
from seccomp import *
|
|
32
|
+
|
|
33
|
+
def test():
|
|
34
|
+
magic = os.getuid() + 1
|
|
35
|
+
f = SyscallFilter(ALLOW)
|
|
36
|
+
f.add_rule(NOTIFY, "getuid")
|
|
37
|
+
f.load()
|
|
38
|
+
pid = os.fork()
|
|
39
|
+
if pid == 0:
|
|
40
|
+
val = os.getuid()
|
|
41
|
+
if val != magic:
|
|
42
|
+
raise RuntimeError("Response return value failed")
|
|
43
|
+
quit(1)
|
|
44
|
+
quit(0)
|
|
45
|
+
else:
|
|
46
|
+
notify = f.receive_notify()
|
|
47
|
+
if notify.syscall != resolve_syscall(Arch(), "getuid"):
|
|
48
|
+
raise RuntimeError("Notification failed")
|
|
49
|
+
f.respond_notify(NotificationResponse(notify, magic, 0, 0))
|
|
50
|
+
wpid, rc = os.waitpid(pid, 0)
|
|
51
|
+
if os.WIFEXITED(rc) == 0:
|
|
52
|
+
raise RuntimeError("Child process error")
|
|
53
|
+
if os.WEXITSTATUS(rc) != 0:
|
|
54
|
+
raise RuntimeError("Child process error")
|
|
55
|
+
quit(160)
|
|
56
|
+
|
|
57
|
+
test()
|
|
58
|
+
|
|
59
|
+
# kate: syntax python;
|
|
60
|
+
# kate: indent-mode python; space-indent on; indent-width 4; mixedindent off;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seccomp Library test program
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2019 Cisco Systems, Inc. <pmoore2@cisco.com>
|
|
5
|
+
* Author: Paul Moore <paul@paul-moore.com>
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* This library is free software; you can redistribute it and/or modify it
|
|
10
|
+
* under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
11
|
+
* published by the Free Software Foundation.
|
|
12
|
+
*
|
|
13
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
|
14
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
15
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
16
|
+
* for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
19
|
+
* along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
#include <errno.h>
|
|
23
|
+
#include <unistd.h>
|
|
24
|
+
|
|
25
|
+
#include <seccomp.h>
|
|
26
|
+
|
|
27
|
+
#include "util.h"
|
|
28
|
+
|
|
29
|
+
int main(int argc, char *argv[])
|
|
30
|
+
{
|
|
31
|
+
int rc;
|
|
32
|
+
struct util_options opts;
|
|
33
|
+
scmp_filter_ctx ctx = NULL;
|
|
34
|
+
|
|
35
|
+
rc = util_getopt(argc, argv, &opts);
|
|
36
|
+
if (rc < 0)
|
|
37
|
+
goto out;
|
|
38
|
+
|
|
39
|
+
ctx = seccomp_init(SCMP_ACT_ALLOW);
|
|
40
|
+
if (ctx == NULL)
|
|
41
|
+
return ENOMEM;
|
|
42
|
+
|
|
43
|
+
rc = seccomp_load(ctx);
|
|
44
|
+
|
|
45
|
+
out:
|
|
46
|
+
seccomp_release(ctx);
|
|
47
|
+
return (rc < 0 ? -rc : rc);
|
|
48
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Seccomp Library test program
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2019 Cisco Systems, Inc. <pmoore2@cisco.com>
|
|
7
|
+
# Author: Paul Moore <paul@paul-moore.com>
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
#
|
|
11
|
+
# This library is free software; you can redistribute it and/or modify it
|
|
12
|
+
# under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
13
|
+
# published by the Free Software Foundation.
|
|
14
|
+
#
|
|
15
|
+
# This library is distributed in the hope that it will be useful, but WITHOUT
|
|
16
|
+
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
18
|
+
# for more details.
|
|
19
|
+
#
|
|
20
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
21
|
+
# along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
import argparse
|
|
25
|
+
import sys
|
|
26
|
+
|
|
27
|
+
import util
|
|
28
|
+
|
|
29
|
+
from seccomp import *
|
|
30
|
+
|
|
31
|
+
def test():
|
|
32
|
+
f = SyscallFilter(ALLOW)
|
|
33
|
+
f.load()
|
|
34
|
+
|
|
35
|
+
test()
|
|
36
|
+
|
|
37
|
+
# kate: syntax python;
|
|
38
|
+
# kate: indent-mode python; space-indent on; indent-width 4; mixedindent off;
|