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
|
@@ -23,17 +23,9 @@
|
|
|
23
23
|
#ifndef _ARCH_PPC64_H
|
|
24
24
|
#define _ARCH_PPC64_H
|
|
25
25
|
|
|
26
|
-
#include <inttypes.h>
|
|
27
|
-
|
|
28
26
|
#include "arch.h"
|
|
29
|
-
#include "system.h"
|
|
30
|
-
|
|
31
|
-
extern const struct arch_def arch_def_ppc64;
|
|
32
|
-
extern const struct arch_def arch_def_ppc64le;
|
|
33
|
-
|
|
34
|
-
int ppc64_syscall_resolve_name(const char *name);
|
|
35
|
-
const char *ppc64_syscall_resolve_num(int num);
|
|
36
27
|
|
|
37
|
-
|
|
28
|
+
ARCH_DECL(ppc64)
|
|
29
|
+
ARCH_DECL(ppc64le)
|
|
38
30
|
|
|
39
31
|
#endif
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This library is free software; you can redistribute it and/or modify it
|
|
3
|
+
* under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
4
|
+
* published by the Free Software Foundation.
|
|
5
|
+
*
|
|
6
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
|
7
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
8
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
9
|
+
* for more details.
|
|
10
|
+
*
|
|
11
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
12
|
+
* along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
#include <stdlib.h>
|
|
16
|
+
#include <errno.h>
|
|
17
|
+
#include <linux/audit.h>
|
|
18
|
+
|
|
19
|
+
#include "arch.h"
|
|
20
|
+
#include "arch-riscv64.h"
|
|
21
|
+
|
|
22
|
+
const struct arch_def arch_def_riscv64 = {
|
|
23
|
+
.token = SCMP_ARCH_RISCV64,
|
|
24
|
+
.token_bpf = AUDIT_ARCH_RISCV64,
|
|
25
|
+
.size = ARCH_SIZE_64,
|
|
26
|
+
.endian = ARCH_ENDIAN_LITTLE,
|
|
27
|
+
.syscall_resolve_name = riscv64_syscall_resolve_name,
|
|
28
|
+
.syscall_resolve_num = riscv64_syscall_resolve_num,
|
|
29
|
+
.syscall_rewrite = NULL,
|
|
30
|
+
.rule_add = NULL,
|
|
31
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This library is free software; you can redistribute it and/or modify it
|
|
3
|
+
* under the terms of version 2.1 of the GNU Lesser General Public License as
|
|
4
|
+
* published by the Free Software Foundation.
|
|
5
|
+
*
|
|
6
|
+
* This library is distributed in the hope that it will be useful, but WITHOUT
|
|
7
|
+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
8
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
|
9
|
+
* for more details.
|
|
10
|
+
*
|
|
11
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
12
|
+
* along with this library; if not, see <http://www.gnu.org/licenses>.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
#ifndef _ARCH_RISCV64_H
|
|
16
|
+
#define _ARCH_RISCV64_H
|
|
17
|
+
|
|
18
|
+
#include "arch.h"
|
|
19
|
+
|
|
20
|
+
ARCH_DECL(riscv64)
|
|
21
|
+
|
|
22
|
+
#endif
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
#include <string.h>
|
|
9
9
|
#include <linux/audit.h>
|
|
10
10
|
|
|
11
|
+
#include "db.h"
|
|
12
|
+
#include "syscalls.h"
|
|
11
13
|
#include "arch.h"
|
|
12
14
|
#include "arch-s390.h"
|
|
13
15
|
|
|
@@ -15,16 +17,159 @@
|
|
|
15
17
|
#define __s390_NR_socketcall 102
|
|
16
18
|
#define __s390_NR_ipc 117
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a syscall name to a number
|
|
22
|
+
* @param name the syscall name
|
|
23
|
+
*
|
|
24
|
+
* Resolve the given syscall name to the syscall number using the syscall table.
|
|
25
|
+
* Returns the syscall number on success, including negative pseudo syscall
|
|
26
|
+
* numbers; returns __NR_SCMP_ERROR on failure.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
int s390_syscall_resolve_name_munge(const char *name)
|
|
30
|
+
{
|
|
31
|
+
if (strcmp(name, "accept") == 0)
|
|
32
|
+
return __PNR_accept;
|
|
33
|
+
if (strcmp(name, "accept4") == 0)
|
|
34
|
+
return __PNR_accept4;
|
|
35
|
+
else if (strcmp(name, "bind") == 0)
|
|
36
|
+
return __PNR_bind;
|
|
37
|
+
else if (strcmp(name, "connect") == 0)
|
|
38
|
+
return __PNR_connect;
|
|
39
|
+
else if (strcmp(name, "getpeername") == 0)
|
|
40
|
+
return __PNR_getpeername;
|
|
41
|
+
else if (strcmp(name, "getsockname") == 0)
|
|
42
|
+
return __PNR_getsockname;
|
|
43
|
+
else if (strcmp(name, "getsockopt") == 0)
|
|
44
|
+
return __PNR_getsockopt;
|
|
45
|
+
else if (strcmp(name, "listen") == 0)
|
|
46
|
+
return __PNR_listen;
|
|
47
|
+
else if (strcmp(name, "msgctl") == 0)
|
|
48
|
+
return __PNR_msgctl;
|
|
49
|
+
else if (strcmp(name, "msgget") == 0)
|
|
50
|
+
return __PNR_msgget;
|
|
51
|
+
else if (strcmp(name, "msgrcv") == 0)
|
|
52
|
+
return __PNR_msgrcv;
|
|
53
|
+
else if (strcmp(name, "msgsnd") == 0)
|
|
54
|
+
return __PNR_msgsnd;
|
|
55
|
+
else if (strcmp(name, "recv") == 0)
|
|
56
|
+
return __PNR_recv;
|
|
57
|
+
else if (strcmp(name, "recvfrom") == 0)
|
|
58
|
+
return __PNR_recvfrom;
|
|
59
|
+
else if (strcmp(name, "recvmsg") == 0)
|
|
60
|
+
return __PNR_recvmsg;
|
|
61
|
+
else if (strcmp(name, "semctl") == 0)
|
|
62
|
+
return __PNR_semctl;
|
|
63
|
+
else if (strcmp(name, "semget") == 0)
|
|
64
|
+
return __PNR_semget;
|
|
65
|
+
else if (strcmp(name, "semtimedop") == 0)
|
|
66
|
+
return __PNR_semtimedop;
|
|
67
|
+
else if (strcmp(name, "recvmmsg") == 0)
|
|
68
|
+
return __PNR_recvmmsg;
|
|
69
|
+
else if (strcmp(name, "send") == 0)
|
|
70
|
+
return __PNR_send;
|
|
71
|
+
else if (strcmp(name, "sendmsg") == 0)
|
|
72
|
+
return __PNR_sendmsg;
|
|
73
|
+
else if (strcmp(name, "sendmmsg") == 0)
|
|
74
|
+
return __PNR_sendmmsg;
|
|
75
|
+
else if (strcmp(name, "sendto") == 0)
|
|
76
|
+
return __PNR_sendto;
|
|
77
|
+
else if (strcmp(name, "setsockopt") == 0)
|
|
78
|
+
return __PNR_setsockopt;
|
|
79
|
+
else if (strcmp(name, "shmat") == 0)
|
|
80
|
+
return __PNR_shmat;
|
|
81
|
+
else if (strcmp(name, "shmdt") == 0)
|
|
82
|
+
return __PNR_shmdt;
|
|
83
|
+
else if (strcmp(name, "shmget") == 0)
|
|
84
|
+
return __PNR_shmget;
|
|
85
|
+
else if (strcmp(name, "shmctl") == 0)
|
|
86
|
+
return __PNR_shmctl;
|
|
87
|
+
else if (strcmp(name, "shutdown") == 0)
|
|
88
|
+
return __PNR_shutdown;
|
|
89
|
+
else if (strcmp(name, "socket") == 0)
|
|
90
|
+
return __PNR_socket;
|
|
91
|
+
else if (strcmp(name, "socketpair") == 0)
|
|
92
|
+
return __PNR_socketpair;
|
|
93
|
+
|
|
94
|
+
return s390_syscall_resolve_name(name);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a syscall number to a name
|
|
99
|
+
* @param num the syscall number
|
|
100
|
+
*
|
|
101
|
+
* Resolve the given syscall number to the syscall name using the syscall table.
|
|
102
|
+
* Returns a pointer to the syscall name string on success, including pseudo
|
|
103
|
+
* syscall names; returns NULL on failure.
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
const char *s390_syscall_resolve_num_munge(int num)
|
|
107
|
+
{
|
|
108
|
+
if (num == __PNR_accept)
|
|
109
|
+
return "accept";
|
|
110
|
+
else if (num == __PNR_accept4)
|
|
111
|
+
return "accept4";
|
|
112
|
+
else if (num == __PNR_bind)
|
|
113
|
+
return "bind";
|
|
114
|
+
else if (num == __PNR_connect)
|
|
115
|
+
return "connect";
|
|
116
|
+
else if (num == __PNR_getpeername)
|
|
117
|
+
return "getpeername";
|
|
118
|
+
else if (num == __PNR_getsockname)
|
|
119
|
+
return "getsockname";
|
|
120
|
+
else if (num == __PNR_getsockopt)
|
|
121
|
+
return "getsockopt";
|
|
122
|
+
else if (num == __PNR_listen)
|
|
123
|
+
return "listen";
|
|
124
|
+
else if (num == __PNR_msgctl)
|
|
125
|
+
return "msgctl";
|
|
126
|
+
else if (num == __PNR_msgget)
|
|
127
|
+
return "msgget";
|
|
128
|
+
else if (num == __PNR_msgrcv)
|
|
129
|
+
return "msgrcv";
|
|
130
|
+
else if (num == __PNR_msgsnd)
|
|
131
|
+
return "msgsnd";
|
|
132
|
+
else if (num == __PNR_recv)
|
|
133
|
+
return "recv";
|
|
134
|
+
else if (num == __PNR_recvfrom)
|
|
135
|
+
return "recvfrom";
|
|
136
|
+
else if (num == __PNR_recvmsg)
|
|
137
|
+
return "recvmsg";
|
|
138
|
+
else if (num == __PNR_recvmmsg)
|
|
139
|
+
return "recvmmsg";
|
|
140
|
+
else if (num == __PNR_semctl)
|
|
141
|
+
return "semctl";
|
|
142
|
+
else if (num == __PNR_semget)
|
|
143
|
+
return "semget";
|
|
144
|
+
else if (num == __PNR_semtimedop)
|
|
145
|
+
return "semtimedop";
|
|
146
|
+
else if (num == __PNR_send)
|
|
147
|
+
return "send";
|
|
148
|
+
else if (num == __PNR_sendmsg)
|
|
149
|
+
return "sendmsg";
|
|
150
|
+
else if (num == __PNR_sendmmsg)
|
|
151
|
+
return "sendmmsg";
|
|
152
|
+
else if (num == __PNR_sendto)
|
|
153
|
+
return "sendto";
|
|
154
|
+
else if (num == __PNR_setsockopt)
|
|
155
|
+
return "setsockopt";
|
|
156
|
+
else if (num == __PNR_shmat)
|
|
157
|
+
return "shmat";
|
|
158
|
+
else if (num == __PNR_shmdt)
|
|
159
|
+
return "shmdt";
|
|
160
|
+
else if (num == __PNR_shmget)
|
|
161
|
+
return "shmget";
|
|
162
|
+
else if (num == __PNR_shmctl)
|
|
163
|
+
return "shmctl";
|
|
164
|
+
else if (num == __PNR_shutdown)
|
|
165
|
+
return "shutdown";
|
|
166
|
+
else if (num == __PNR_socket)
|
|
167
|
+
return "socket";
|
|
168
|
+
else if (num == __PNR_socketpair)
|
|
169
|
+
return "socketpair";
|
|
170
|
+
|
|
171
|
+
return s390_syscall_resolve_num(num);
|
|
172
|
+
}
|
|
28
173
|
|
|
29
174
|
/**
|
|
30
175
|
* Convert a multiplexed pseudo syscall into a direct syscall
|
|
@@ -107,8 +252,8 @@ static int _s390_syscall_demux(int syscall)
|
|
|
107
252
|
/* semctl */
|
|
108
253
|
return 394;
|
|
109
254
|
case -204:
|
|
110
|
-
/* semtimedop
|
|
111
|
-
return
|
|
255
|
+
/* semtimedop */
|
|
256
|
+
return 392;
|
|
112
257
|
case -211:
|
|
113
258
|
/* msgsnd */
|
|
114
259
|
return 400;
|
|
@@ -231,6 +376,9 @@ static int _s390_syscall_mux(int syscall)
|
|
|
231
376
|
case 396:
|
|
232
377
|
/* shmctl */
|
|
233
378
|
return -224;
|
|
379
|
+
case 392:
|
|
380
|
+
/* semtimedop */
|
|
381
|
+
return -204;
|
|
234
382
|
}
|
|
235
383
|
|
|
236
384
|
return __NR_SCMP_ERROR;
|
|
@@ -448,3 +596,14 @@ add_return:
|
|
|
448
596
|
free(rule_dup);
|
|
449
597
|
return rc;
|
|
450
598
|
}
|
|
599
|
+
|
|
600
|
+
const struct arch_def arch_def_s390 = {
|
|
601
|
+
.token = SCMP_ARCH_S390,
|
|
602
|
+
.token_bpf = AUDIT_ARCH_S390,
|
|
603
|
+
.size = ARCH_SIZE_32,
|
|
604
|
+
.endian = ARCH_ENDIAN_BIG,
|
|
605
|
+
.syscall_resolve_name = s390_syscall_resolve_name_munge,
|
|
606
|
+
.syscall_resolve_num = s390_syscall_resolve_num_munge,
|
|
607
|
+
.syscall_rewrite = s390_syscall_rewrite,
|
|
608
|
+
.rule_add = s390_rule_add,
|
|
609
|
+
};
|
|
@@ -6,24 +6,8 @@
|
|
|
6
6
|
#ifndef _ARCH_S390_H
|
|
7
7
|
#define _ARCH_S390_H
|
|
8
8
|
|
|
9
|
-
#include <inttypes.h>
|
|
10
|
-
|
|
11
9
|
#include "arch.h"
|
|
12
|
-
#include "db.h"
|
|
13
|
-
#include "system.h"
|
|
14
|
-
|
|
15
|
-
#define s390_arg_count_max 6
|
|
16
|
-
|
|
17
|
-
extern const struct arch_def arch_def_s390;
|
|
18
|
-
#define s390_arg_offset(x) (offsetof(struct seccomp_data, args[x]))
|
|
19
|
-
|
|
20
|
-
int s390_syscall_resolve_name(const char *name);
|
|
21
|
-
const char *s390_syscall_resolve_num(int num);
|
|
22
|
-
|
|
23
|
-
const struct arch_syscall_def *s390_syscall_iterate(unsigned int spot);
|
|
24
|
-
|
|
25
|
-
int s390_syscall_rewrite(int *syscall);
|
|
26
10
|
|
|
27
|
-
|
|
11
|
+
ARCH_DECL(s390)
|
|
28
12
|
|
|
29
13
|
#endif
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
#include <string.h>
|
|
9
9
|
#include <linux/audit.h>
|
|
10
10
|
|
|
11
|
+
#include "db.h"
|
|
12
|
+
#include "syscalls.h"
|
|
11
13
|
#include "arch.h"
|
|
12
14
|
#include "arch-s390x.h"
|
|
13
15
|
|
|
@@ -15,16 +17,159 @@
|
|
|
15
17
|
#define __s390x_NR_socketcall 102
|
|
16
18
|
#define __s390x_NR_ipc 117
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a syscall name to a number
|
|
22
|
+
* @param name the syscall name
|
|
23
|
+
*
|
|
24
|
+
* Resolve the given syscall name to the syscall number using the syscall table.
|
|
25
|
+
* Returns the syscall number on success, including negative pseudo syscall
|
|
26
|
+
* numbers; returns __NR_SCMP_ERROR on failure.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
int s390x_syscall_resolve_name_munge(const char *name)
|
|
30
|
+
{
|
|
31
|
+
if (strcmp(name, "accept") == 0)
|
|
32
|
+
return __PNR_accept;
|
|
33
|
+
if (strcmp(name, "accept4") == 0)
|
|
34
|
+
return __PNR_accept4;
|
|
35
|
+
else if (strcmp(name, "bind") == 0)
|
|
36
|
+
return __PNR_bind;
|
|
37
|
+
else if (strcmp(name, "connect") == 0)
|
|
38
|
+
return __PNR_connect;
|
|
39
|
+
else if (strcmp(name, "getpeername") == 0)
|
|
40
|
+
return __PNR_getpeername;
|
|
41
|
+
else if (strcmp(name, "getsockname") == 0)
|
|
42
|
+
return __PNR_getsockname;
|
|
43
|
+
else if (strcmp(name, "getsockopt") == 0)
|
|
44
|
+
return __PNR_getsockopt;
|
|
45
|
+
else if (strcmp(name, "listen") == 0)
|
|
46
|
+
return __PNR_listen;
|
|
47
|
+
else if (strcmp(name, "msgctl") == 0)
|
|
48
|
+
return __PNR_msgctl;
|
|
49
|
+
else if (strcmp(name, "msgget") == 0)
|
|
50
|
+
return __PNR_msgget;
|
|
51
|
+
else if (strcmp(name, "msgrcv") == 0)
|
|
52
|
+
return __PNR_msgrcv;
|
|
53
|
+
else if (strcmp(name, "msgsnd") == 0)
|
|
54
|
+
return __PNR_msgsnd;
|
|
55
|
+
else if (strcmp(name, "recv") == 0)
|
|
56
|
+
return __PNR_recv;
|
|
57
|
+
else if (strcmp(name, "recvfrom") == 0)
|
|
58
|
+
return __PNR_recvfrom;
|
|
59
|
+
else if (strcmp(name, "recvmsg") == 0)
|
|
60
|
+
return __PNR_recvmsg;
|
|
61
|
+
else if (strcmp(name, "recvmmsg") == 0)
|
|
62
|
+
return __PNR_recvmmsg;
|
|
63
|
+
else if (strcmp(name, "semctl") == 0)
|
|
64
|
+
return __PNR_semctl;
|
|
65
|
+
else if (strcmp(name, "semget") == 0)
|
|
66
|
+
return __PNR_semget;
|
|
67
|
+
else if (strcmp(name, "semtimedop") == 0)
|
|
68
|
+
return __PNR_semtimedop;
|
|
69
|
+
else if (strcmp(name, "send") == 0)
|
|
70
|
+
return __PNR_send;
|
|
71
|
+
else if (strcmp(name, "sendmsg") == 0)
|
|
72
|
+
return __PNR_sendmsg;
|
|
73
|
+
else if (strcmp(name, "sendmmsg") == 0)
|
|
74
|
+
return __PNR_sendmmsg;
|
|
75
|
+
else if (strcmp(name, "sendto") == 0)
|
|
76
|
+
return __PNR_sendto;
|
|
77
|
+
else if (strcmp(name, "setsockopt") == 0)
|
|
78
|
+
return __PNR_setsockopt;
|
|
79
|
+
else if (strcmp(name, "shmat") == 0)
|
|
80
|
+
return __PNR_shmat;
|
|
81
|
+
else if (strcmp(name, "shmdt") == 0)
|
|
82
|
+
return __PNR_shmdt;
|
|
83
|
+
else if (strcmp(name, "shmget") == 0)
|
|
84
|
+
return __PNR_shmget;
|
|
85
|
+
else if (strcmp(name, "shmctl") == 0)
|
|
86
|
+
return __PNR_shmctl;
|
|
87
|
+
else if (strcmp(name, "shutdown") == 0)
|
|
88
|
+
return __PNR_shutdown;
|
|
89
|
+
else if (strcmp(name, "socket") == 0)
|
|
90
|
+
return __PNR_socket;
|
|
91
|
+
else if (strcmp(name, "socketpair") == 0)
|
|
92
|
+
return __PNR_socketpair;
|
|
93
|
+
|
|
94
|
+
return s390x_syscall_resolve_name(name);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a syscall number to a name
|
|
99
|
+
* @param num the syscall number
|
|
100
|
+
*
|
|
101
|
+
* Resolve the given syscall number to the syscall name using the syscall table.
|
|
102
|
+
* Returns a pointer to the syscall name string on success, including pseudo
|
|
103
|
+
* syscall names; returns NULL on failure.
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
const char *s390x_syscall_resolve_num_munge(int num)
|
|
107
|
+
{
|
|
108
|
+
if (num == __PNR_accept)
|
|
109
|
+
return "accept";
|
|
110
|
+
else if (num == __PNR_accept4)
|
|
111
|
+
return "accept4";
|
|
112
|
+
else if (num == __PNR_bind)
|
|
113
|
+
return "bind";
|
|
114
|
+
else if (num == __PNR_connect)
|
|
115
|
+
return "connect";
|
|
116
|
+
else if (num == __PNR_getpeername)
|
|
117
|
+
return "getpeername";
|
|
118
|
+
else if (num == __PNR_getsockname)
|
|
119
|
+
return "getsockname";
|
|
120
|
+
else if (num == __PNR_getsockopt)
|
|
121
|
+
return "getsockopt";
|
|
122
|
+
else if (num == __PNR_listen)
|
|
123
|
+
return "listen";
|
|
124
|
+
else if (num == __PNR_msgctl)
|
|
125
|
+
return "msgctl";
|
|
126
|
+
else if (num == __PNR_msgget)
|
|
127
|
+
return "msgget";
|
|
128
|
+
else if (num == __PNR_msgrcv)
|
|
129
|
+
return "msgrcv";
|
|
130
|
+
else if (num == __PNR_msgsnd)
|
|
131
|
+
return "msgsnd";
|
|
132
|
+
else if (num == __PNR_recv)
|
|
133
|
+
return "recv";
|
|
134
|
+
else if (num == __PNR_recvfrom)
|
|
135
|
+
return "recvfrom";
|
|
136
|
+
else if (num == __PNR_recvmsg)
|
|
137
|
+
return "recvmsg";
|
|
138
|
+
else if (num == __PNR_recvmmsg)
|
|
139
|
+
return "recvmmsg";
|
|
140
|
+
else if (num == __PNR_semctl)
|
|
141
|
+
return "semctl";
|
|
142
|
+
else if (num == __PNR_semget)
|
|
143
|
+
return "semget";
|
|
144
|
+
else if (num == __PNR_semtimedop)
|
|
145
|
+
return "semtimedop";
|
|
146
|
+
else if (num == __PNR_send)
|
|
147
|
+
return "send";
|
|
148
|
+
else if (num == __PNR_sendmsg)
|
|
149
|
+
return "sendmsg";
|
|
150
|
+
else if (num == __PNR_sendmmsg)
|
|
151
|
+
return "sendmmsg";
|
|
152
|
+
else if (num == __PNR_sendto)
|
|
153
|
+
return "sendto";
|
|
154
|
+
else if (num == __PNR_setsockopt)
|
|
155
|
+
return "setsockopt";
|
|
156
|
+
else if (num == __PNR_shmat)
|
|
157
|
+
return "shmat";
|
|
158
|
+
else if (num == __PNR_shmdt)
|
|
159
|
+
return "shmdt";
|
|
160
|
+
else if (num == __PNR_shmget)
|
|
161
|
+
return "shmget";
|
|
162
|
+
else if (num == __PNR_shmctl)
|
|
163
|
+
return "shmctl";
|
|
164
|
+
else if (num == __PNR_shutdown)
|
|
165
|
+
return "shutdown";
|
|
166
|
+
else if (num == __PNR_socket)
|
|
167
|
+
return "socket";
|
|
168
|
+
else if (num == __PNR_socketpair)
|
|
169
|
+
return "socketpair";
|
|
170
|
+
|
|
171
|
+
return s390x_syscall_resolve_num(num);
|
|
172
|
+
}
|
|
28
173
|
|
|
29
174
|
/**
|
|
30
175
|
* Convert a multiplexed pseudo socket syscall into a direct syscall
|
|
@@ -450,3 +595,14 @@ add_return:
|
|
|
450
595
|
free(rule_dup);
|
|
451
596
|
return rc;
|
|
452
597
|
}
|
|
598
|
+
|
|
599
|
+
const struct arch_def arch_def_s390x = {
|
|
600
|
+
.token = SCMP_ARCH_S390X,
|
|
601
|
+
.token_bpf = AUDIT_ARCH_S390X,
|
|
602
|
+
.size = ARCH_SIZE_64,
|
|
603
|
+
.endian = ARCH_ENDIAN_BIG,
|
|
604
|
+
.syscall_resolve_name = s390x_syscall_resolve_name_munge,
|
|
605
|
+
.syscall_resolve_num = s390x_syscall_resolve_num_munge,
|
|
606
|
+
.syscall_rewrite = s390x_syscall_rewrite,
|
|
607
|
+
.rule_add = s390x_rule_add,
|
|
608
|
+
};
|