script_core 0.1.1 → 0.2.0
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/.gitignore +2 -0
- data/.rubocop.yml +8 -6
- data/.ruby-version +1 -1
- data/Gemfile +2 -1
- data/bin/sandbox +1 -1
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/flags.rb +5 -0
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +15 -0
- data/ext/enterprise_script_service/libseccomp/CREDITS +3 -0
- data/ext/enterprise_script_service/libseccomp/Makefile.am +1 -1
- data/ext/enterprise_script_service/libseccomp/README.md +1 -1
- data/ext/enterprise_script_service/libseccomp/SECURITY.md +45 -0
- data/ext/enterprise_script_service/libseccomp/configure.ac +3 -3
- data/ext/enterprise_script_service/libseccomp/doc/admin/MAINTAINER_PROCESS.md +95 -0
- data/ext/enterprise_script_service/libseccomp/{RELEASE_PROCESS.md → doc/admin/RELEASE_PROCESS.md} +9 -1
- data/ext/enterprise_script_service/libseccomp/include/Makefile.am +1 -1
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +2292 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +3 -1065
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +35 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +35 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +43 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +34 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +43 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +44 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +46 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +142 -18
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +47 -15
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +143 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +94 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +142 -19
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/db.c +1 -0
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +10 -3
- data/ext/enterprise_script_service/libseccomp/src/python/Makefile.am +4 -4
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +2 -0
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.c +98 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.tests +18 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +6 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -2
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
- data/ext/enterprise_script_service/mruby-mpdecimal/src/ext.c +1 -1
- data/ext/enterprise_script_service/mruby/.gitignore +2 -2
- data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +10 -3
- data/ext/enterprise_script_service/mruby/Doxyfile +2408 -0
- data/ext/enterprise_script_service/mruby/README.md +21 -8
- data/ext/enterprise_script_service/mruby/Rakefile +4 -13
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +1 -1
- data/ext/enterprise_script_service/mruby/build_config.rb +3 -3
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +42 -42
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +45 -6
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +5 -0
- data/ext/enterprise_script_service/mruby/doc/limitations.md +88 -38
- data/ext/enterprise_script_service/mruby/doc/mruby_logo_red_icon.png +0 -0
- data/ext/enterprise_script_service/mruby/doc/opcode.md +94 -94
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +74 -11
- data/ext/enterprise_script_service/mruby/include/mruby.h +242 -146
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +7 -7
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +2 -9
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +11 -10
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +104 -69
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +7 -5
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +9 -7
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +6 -6
- data/ext/enterprise_script_service/mruby/include/mruby/data.h +5 -5
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +3 -7
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +34 -6
- data/ext/enterprise_script_service/mruby/include/mruby/gc.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +4 -11
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +16 -4
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -4
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +41 -7
- data/ext/enterprise_script_service/mruby/include/mruby/object.h +8 -9
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +6 -6
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +19 -13
- data/ext/enterprise_script_service/mruby/include/mruby/range.h +10 -4
- data/ext/enterprise_script_service/mruby/include/mruby/re.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +130 -107
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +137 -49
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +3 -5
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +24 -10
- data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +2 -39
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +32 -15
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +63 -17
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +24 -10
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +11 -7
- data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +81 -0
- data/ext/enterprise_script_service/mruby/minirake +27 -11
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +47 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +50 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +28 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +75 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +134 -90
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +69 -46
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +0 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +51 -59
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +430 -241
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrbgem.rake +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +122 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +249 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +19 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +41 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +30 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/test/enum.rb +8 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +46 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +51 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +47 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-exit/src/mruby-exit.c +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +16 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/test/fiber.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +3 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +0 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +24 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/kernel.rb +16 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +19 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +5 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +54 -42
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +24 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file_test.rb +4 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +41 -35
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +9 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +9 -27
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +39 -24
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +48 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/method.rb +0 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +134 -101
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +9 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +1 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +17 -37
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +0 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +15 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +35 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/test/nil.rb +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +28 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/test/pack.rb +43 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +3 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +6 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.rb +21 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +157 -124
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +72 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +38 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +26 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +111 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +117 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +209 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +308 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +10 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +22 -24
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +8 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +116 -117
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/numeric.rb +29 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/range.rb +26 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/string.rb +32 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +5 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +43 -57
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/test/struct.rb +16 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +152 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +200 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/include/mruby/time.h +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +199 -68
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/test/time.rb +81 -46
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +14 -16
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +13 -9
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +5 -7
- data/ext/enterprise_script_service/mruby/mrblib/kernel.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrblib/range.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/string.rb +55 -112
- data/ext/enterprise_script_service/mruby/mruby-source.gemspec +1 -1
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby.dict +105 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_fuzzer.options +5 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_proto_fuzzer.options +4 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_fuzzer.c +18 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +44 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.cpp +455 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +55 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/ruby.proto +201 -0
- data/ext/enterprise_script_service/mruby/src/array.c +95 -46
- data/ext/enterprise_script_service/mruby/src/backtrace.c +6 -8
- data/ext/enterprise_script_service/mruby/src/class.c +370 -278
- data/ext/enterprise_script_service/mruby/src/codedump.c +34 -34
- data/ext/enterprise_script_service/mruby/src/debug.c +2 -2
- data/ext/enterprise_script_service/mruby/src/dump.c +8 -6
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +157 -55
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -46
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +2 -2
- data/ext/enterprise_script_service/mruby/src/gc.c +30 -11
- data/ext/enterprise_script_service/mruby/src/hash.c +23 -14
- data/ext/enterprise_script_service/mruby/src/kernel.c +16 -54
- data/ext/enterprise_script_service/mruby/src/load.c +40 -76
- data/ext/enterprise_script_service/mruby/src/numeric.c +164 -94
- data/ext/enterprise_script_service/mruby/src/object.c +16 -39
- data/ext/enterprise_script_service/mruby/src/pool.c +0 -2
- data/ext/enterprise_script_service/mruby/src/proc.c +47 -48
- data/ext/enterprise_script_service/mruby/src/range.c +22 -35
- data/ext/enterprise_script_service/mruby/src/state.c +5 -94
- data/ext/enterprise_script_service/mruby/src/string.c +874 -710
- data/ext/enterprise_script_service/mruby/src/symbol.c +73 -48
- data/ext/enterprise_script_service/mruby/src/variable.c +58 -38
- data/ext/enterprise_script_service/mruby/src/vm.c +133 -304
- data/ext/enterprise_script_service/mruby/tasks/doc.rake +48 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/clang.rake +3 -4
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +20 -19
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +0 -12
- data/ext/enterprise_script_service/mruby/test/assert.rb +186 -25
- data/ext/enterprise_script_service/mruby/test/t/array.rb +34 -6
- data/ext/enterprise_script_service/mruby/test/t/class.rb +26 -0
- data/ext/enterprise_script_service/mruby/test/t/enumerable.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/float.rb +17 -17
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +2 -0
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +14 -6
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +38 -19
- data/ext/enterprise_script_service/mruby/test/t/module.rb +87 -14
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +65 -23
- data/ext/enterprise_script_service/mruby/test/t/range.rb +4 -4
- data/ext/enterprise_script_service/mruby/test/t/string.rb +211 -49
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +19 -2
- data/ext/enterprise_script_service/mruby/test/t/vformat.rb +92 -0
- data/ext/enterprise_script_service/mruby/travis_config.rb +2 -2
- data/ext/enterprise_script_service/mruby_config.rb +10 -0
- data/ext/enterprise_script_service/mruby_engine.cpp +2 -2
- data/ext/enterprise_script_service/mruby_engine.gembox +1 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +14 -0
- data/ext/enterprise_script_service/msgpack/Files.cmake +4 -0
- data/ext/enterprise_script_service/msgpack/README.md +1 -1
- data/ext/enterprise_script_service/msgpack/appveyor.yml +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple.hpp.erb +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple_decl.hpp.erb +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone.hpp.erb +3 -3
- data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp11/timespec.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/wstring.hpp +15 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/object.h +2 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack_template.h +17 -9
- data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +27 -16
- data/ext/enterprise_script_service/msgpack/include/msgpack/type.hpp +2 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_template.h +5 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +0 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/timespec.hpp +140 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +32 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +10 -10
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/ext.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/fixint.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int.hpp +40 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int_decl.hpp +3 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +121 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_fwd.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/pack.hpp +40 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +11 -11
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/vrefbuffer.hpp +7 -7
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/zbuffer.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/adaptor/int_decl.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +13 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse.hpp +28 -26
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/int_decl.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +13 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/zone.h +1 -1
- data/ext/enterprise_script_service/msgpack/src/objectc.c +83 -148
- data/ext/enterprise_script_service/msgpack/src/unpack.c +73 -47
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +15 -9
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +7 -1
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +7 -1
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +6 -1
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +8 -2
- data/ext/enterprise_script_service/msgpack/test/json.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +128 -6
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +7 -2
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +20 -3
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +8 -3
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +23 -18
- data/ext/enterprise_script_service/msgpack/test/object.cpp +77 -45
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +28 -10
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +25 -18
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +17 -12
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +6 -2
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +10 -3
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/version.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +6 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/mruby/engine.gembox.example +1 -0
- data/lib/tasks/script_core.rake +21 -3
- data/spec/dummy/app/helpers/fields_helper.rb +2 -2
- data/spec/dummy/mruby/engine.gembox +1 -0
- data/spec/script_core_spec.rb +1 -1
- metadata +38 -22
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.gitignore +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.travis.yml +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/run_test.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +0 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/unbound_method.rb +0 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.gitignore +0 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.travis.yml +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/packtest.rb +0 -157
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/run_test.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.c +0 -224
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.h +0 -80
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.h +0 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.gitignore +0 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis.yml +0 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis_build_config.rb +0 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/Rakefile +0 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/.travis.yml +0 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/run_test.rb +0 -28
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
#include "arch.h"
|
|
27
27
|
#include "arch-x32.h"
|
|
28
28
|
|
|
29
|
-
/* NOTE: based on Linux 4
|
|
29
|
+
/* NOTE: based on Linux v5.4-rc4 */
|
|
30
30
|
const struct arch_syscall_def x32_syscall_table[] = { \
|
|
31
31
|
{ "_llseek", __PNR__llseek },
|
|
32
32
|
{ "_newselect", __PNR__newselect },
|
|
@@ -58,11 +58,17 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
58
58
|
{ "chown32", __PNR_chown32 },
|
|
59
59
|
{ "chroot", (X32_SYSCALL_BIT + 161) },
|
|
60
60
|
{ "clock_adjtime", (X32_SYSCALL_BIT + 305) },
|
|
61
|
+
{ "clock_adjtime64", __PNR_clock_adjtime64 },
|
|
61
62
|
{ "clock_getres", (X32_SYSCALL_BIT + 229) },
|
|
63
|
+
{ "clock_getres_time64", __PNR_clock_getres_time64 },
|
|
62
64
|
{ "clock_gettime", (X32_SYSCALL_BIT + 228) },
|
|
65
|
+
{ "clock_gettime64", __PNR_clock_gettime64 },
|
|
63
66
|
{ "clock_nanosleep", (X32_SYSCALL_BIT + 230) },
|
|
67
|
+
{ "clock_nanosleep_time64", __PNR_clock_nanosleep_time64 },
|
|
64
68
|
{ "clock_settime", (X32_SYSCALL_BIT + 227) },
|
|
69
|
+
{ "clock_settime64", __PNR_clock_settime64 },
|
|
65
70
|
{ "clone", (X32_SYSCALL_BIT + 56) },
|
|
71
|
+
{ "clone3", (X32_SYSCALL_BIT + 435) },
|
|
66
72
|
{ "close", (X32_SYSCALL_BIT + 3) },
|
|
67
73
|
{ "connect", (X32_SYSCALL_BIT + 42) },
|
|
68
74
|
{ "copy_file_range", (X32_SYSCALL_BIT + 326) },
|
|
@@ -106,7 +112,11 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
106
112
|
{ "flock", (X32_SYSCALL_BIT + 73) },
|
|
107
113
|
{ "fork", (X32_SYSCALL_BIT + 57) },
|
|
108
114
|
{ "fremovexattr", (X32_SYSCALL_BIT + 199) },
|
|
115
|
+
{ "fsconfig", (X32_SYSCALL_BIT + 431) },
|
|
109
116
|
{ "fsetxattr", (X32_SYSCALL_BIT + 190) },
|
|
117
|
+
{ "fsmount", (X32_SYSCALL_BIT + 432) },
|
|
118
|
+
{ "fsopen", (X32_SYSCALL_BIT + 430) },
|
|
119
|
+
{ "fspick", (X32_SYSCALL_BIT + 433) },
|
|
110
120
|
{ "fstat", (X32_SYSCALL_BIT + 5) },
|
|
111
121
|
{ "fstat64", __PNR_fstat64 },
|
|
112
122
|
{ "fstatat64", __PNR_fstatat64 },
|
|
@@ -117,6 +127,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
117
127
|
{ "ftruncate", (X32_SYSCALL_BIT + 77) },
|
|
118
128
|
{ "ftruncate64", __PNR_ftruncate64 },
|
|
119
129
|
{ "futex", (X32_SYSCALL_BIT + 202) },
|
|
130
|
+
{ "futex_time64", __PNR_futex_time64 },
|
|
120
131
|
{ "futimesat", (X32_SYSCALL_BIT + 261) },
|
|
121
132
|
{ "get_kernel_syms", __PNR_get_kernel_syms },
|
|
122
133
|
{ "get_mempolicy", (X32_SYSCALL_BIT + 239) },
|
|
@@ -169,8 +180,12 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
169
180
|
{ "io_destroy", (X32_SYSCALL_BIT + 207) },
|
|
170
181
|
{ "io_getevents", (X32_SYSCALL_BIT + 208) },
|
|
171
182
|
{ "io_pgetevents", (X32_SYSCALL_BIT + 333) },
|
|
183
|
+
{ "io_pgetevents_time64", __PNR_io_pgetevents_time64 },
|
|
172
184
|
{ "io_setup", (X32_SYSCALL_BIT + 543) },
|
|
173
185
|
{ "io_submit", (X32_SYSCALL_BIT + 544) },
|
|
186
|
+
{ "io_uring_setup", (X32_SYSCALL_BIT + 425) },
|
|
187
|
+
{ "io_uring_enter", (X32_SYSCALL_BIT + 426) },
|
|
188
|
+
{ "io_uring_register", (X32_SYSCALL_BIT + 427) },
|
|
174
189
|
{ "ioctl", (X32_SYSCALL_BIT + 514) },
|
|
175
190
|
{ "ioperm", (X32_SYSCALL_BIT + 173) },
|
|
176
191
|
{ "iopl", (X32_SYSCALL_BIT + 172) },
|
|
@@ -214,6 +229,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
214
229
|
{ "mmap2", __PNR_mmap2 },
|
|
215
230
|
{ "modify_ldt", (X32_SYSCALL_BIT + 154) },
|
|
216
231
|
{ "mount", (X32_SYSCALL_BIT + 165) },
|
|
232
|
+
{ "move_mount", (X32_SYSCALL_BIT + 429) },
|
|
217
233
|
{ "move_pages", (X32_SYSCALL_BIT + 533) },
|
|
218
234
|
{ "mprotect", (X32_SYSCALL_BIT + 10) },
|
|
219
235
|
{ "mpx", __PNR_mpx },
|
|
@@ -221,7 +237,9 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
221
237
|
{ "mq_notify", (X32_SYSCALL_BIT + 527) },
|
|
222
238
|
{ "mq_open", (X32_SYSCALL_BIT + 240) },
|
|
223
239
|
{ "mq_timedreceive", (X32_SYSCALL_BIT + 243) },
|
|
240
|
+
{ "mq_timedreceive_time64", __PNR_mq_timedreceive_time64 },
|
|
224
241
|
{ "mq_timedsend", (X32_SYSCALL_BIT + 242) },
|
|
242
|
+
{ "mq_timedsend_time64", __PNR_mq_timedsend_time64 },
|
|
225
243
|
{ "mq_unlink", (X32_SYSCALL_BIT + 241) },
|
|
226
244
|
{ "mremap", (X32_SYSCALL_BIT + 25) },
|
|
227
245
|
{ "msgctl", (X32_SYSCALL_BIT + 71) },
|
|
@@ -246,6 +264,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
246
264
|
{ "oldwait4", __PNR_oldwait4 },
|
|
247
265
|
{ "open", (X32_SYSCALL_BIT + 2) },
|
|
248
266
|
{ "open_by_handle_at", (X32_SYSCALL_BIT + 304) },
|
|
267
|
+
{ "open_tree", (X32_SYSCALL_BIT + 428) },
|
|
249
268
|
{ "openat", (X32_SYSCALL_BIT + 257) },
|
|
250
269
|
{ "pause", (X32_SYSCALL_BIT + 34) },
|
|
251
270
|
{ "pciconfig_iobase", __PNR_pciconfig_iobase },
|
|
@@ -253,6 +272,8 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
253
272
|
{ "pciconfig_write", __PNR_pciconfig_write },
|
|
254
273
|
{ "perf_event_open", (X32_SYSCALL_BIT + 298) },
|
|
255
274
|
{ "personality", (X32_SYSCALL_BIT + 135) },
|
|
275
|
+
{ "pidfd_open", (X32_SYSCALL_BIT + 434) },
|
|
276
|
+
{ "pidfd_send_signal", (X32_SYSCALL_BIT + 424) },
|
|
256
277
|
{ "pipe", (X32_SYSCALL_BIT + 22) },
|
|
257
278
|
{ "pipe2", (X32_SYSCALL_BIT + 293) },
|
|
258
279
|
{ "pivot_root", (X32_SYSCALL_BIT + 155) },
|
|
@@ -261,6 +282,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
261
282
|
{ "pkey_mprotect", (X32_SYSCALL_BIT + 329) },
|
|
262
283
|
{ "poll", (X32_SYSCALL_BIT + 7) },
|
|
263
284
|
{ "ppoll", (X32_SYSCALL_BIT + 271) },
|
|
285
|
+
{ "ppoll_time64", __PNR_ppoll_time64 },
|
|
264
286
|
{ "prctl", (X32_SYSCALL_BIT + 157) },
|
|
265
287
|
{ "pread64", (X32_SYSCALL_BIT + 17) },
|
|
266
288
|
{ "preadv", (X32_SYSCALL_BIT + 534) },
|
|
@@ -271,6 +293,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
271
293
|
{ "prof", __PNR_prof },
|
|
272
294
|
{ "profil", __PNR_profil },
|
|
273
295
|
{ "pselect6", (X32_SYSCALL_BIT + 270) },
|
|
296
|
+
{ "pselect6_time64", __PNR_pselect6_time64 },
|
|
274
297
|
{ "ptrace", (X32_SYSCALL_BIT + 521) },
|
|
275
298
|
{ "putpmsg", (X32_SYSCALL_BIT + 182) },
|
|
276
299
|
{ "pwrite64", (X32_SYSCALL_BIT + 18) },
|
|
@@ -288,6 +311,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
288
311
|
{ "recv", __PNR_recv },
|
|
289
312
|
{ "recvfrom", (X32_SYSCALL_BIT + 517) },
|
|
290
313
|
{ "recvmmsg", (X32_SYSCALL_BIT + 537) },
|
|
314
|
+
{ "recvmmsg_time64", __PNR_recvmmsg_time64 },
|
|
291
315
|
{ "recvmsg", (X32_SYSCALL_BIT + 519) },
|
|
292
316
|
{ "remap_file_pages", (X32_SYSCALL_BIT + 216) },
|
|
293
317
|
{ "removexattr", (X32_SYSCALL_BIT + 197) },
|
|
@@ -305,6 +329,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
305
329
|
{ "rt_sigreturn", (X32_SYSCALL_BIT + 513) },
|
|
306
330
|
{ "rt_sigsuspend", (X32_SYSCALL_BIT + 130) },
|
|
307
331
|
{ "rt_sigtimedwait", (X32_SYSCALL_BIT + 523) },
|
|
332
|
+
{ "rt_sigtimedwait_time64", __PNR_rt_sigtimedwait_time64 },
|
|
308
333
|
{ "rt_tgsigqueueinfo", (X32_SYSCALL_BIT + 536) },
|
|
309
334
|
{ "rtas", __PNR_rtas },
|
|
310
335
|
{ "s390_guarded_storage", __PNR_s390_guarded_storage },
|
|
@@ -319,6 +344,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
319
344
|
{ "sched_getparam", (X32_SYSCALL_BIT + 143) },
|
|
320
345
|
{ "sched_getscheduler", (X32_SYSCALL_BIT + 145) },
|
|
321
346
|
{ "sched_rr_get_interval", (X32_SYSCALL_BIT + 148) },
|
|
347
|
+
{ "sched_rr_get_interval_time64", __PNR_sched_rr_get_interval_time64 },
|
|
322
348
|
{ "sched_setaffinity", (X32_SYSCALL_BIT + 203) },
|
|
323
349
|
{ "sched_setattr", (X32_SYSCALL_BIT + 314) },
|
|
324
350
|
{ "sched_setparam", (X32_SYSCALL_BIT + 142) },
|
|
@@ -331,6 +357,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
331
357
|
{ "semget", (X32_SYSCALL_BIT + 64) },
|
|
332
358
|
{ "semop", (X32_SYSCALL_BIT + 65) },
|
|
333
359
|
{ "semtimedop", (X32_SYSCALL_BIT + 220) },
|
|
360
|
+
{ "semtimedop_time64", __PNR_semtimedop_time64 },
|
|
334
361
|
{ "send", __PNR_send },
|
|
335
362
|
{ "sendfile", (X32_SYSCALL_BIT + 40) },
|
|
336
363
|
{ "sendfile64", __PNR_sendfile64 },
|
|
@@ -424,11 +451,15 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
424
451
|
{ "timer_delete", (X32_SYSCALL_BIT + 226) },
|
|
425
452
|
{ "timer_getoverrun", (X32_SYSCALL_BIT + 225) },
|
|
426
453
|
{ "timer_gettime", (X32_SYSCALL_BIT + 224) },
|
|
454
|
+
{ "timer_gettime64", __PNR_timer_gettime64 },
|
|
427
455
|
{ "timer_settime", (X32_SYSCALL_BIT + 223) },
|
|
456
|
+
{ "timer_settime64", __PNR_timer_settime64 },
|
|
428
457
|
{ "timerfd", __PNR_timerfd },
|
|
429
458
|
{ "timerfd_create", (X32_SYSCALL_BIT + 283) },
|
|
430
459
|
{ "timerfd_gettime", (X32_SYSCALL_BIT + 287) },
|
|
460
|
+
{ "timerfd_gettime64", __PNR_timerfd_gettime64 },
|
|
431
461
|
{ "timerfd_settime", (X32_SYSCALL_BIT + 286) },
|
|
462
|
+
{ "timerfd_settime64", __PNR_timerfd_settime64 },
|
|
432
463
|
{ "times", (X32_SYSCALL_BIT + 100) },
|
|
433
464
|
{ "tkill", (X32_SYSCALL_BIT + 200) },
|
|
434
465
|
{ "truncate", (X32_SYSCALL_BIT + 76) },
|
|
@@ -450,6 +481,7 @@ const struct arch_syscall_def x32_syscall_table[] = { \
|
|
|
450
481
|
{ "ustat", (X32_SYSCALL_BIT + 136) },
|
|
451
482
|
{ "utime", (X32_SYSCALL_BIT + 132) },
|
|
452
483
|
{ "utimensat", (X32_SYSCALL_BIT + 280) },
|
|
484
|
+
{ "utimensat_time64", __PNR_utimensat_time64 },
|
|
453
485
|
{ "utimes", (X32_SYSCALL_BIT + 235) },
|
|
454
486
|
{ "vfork", (X32_SYSCALL_BIT + 58) },
|
|
455
487
|
{ "vhangup", (X32_SYSCALL_BIT + 153) },
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
#include "arch.h"
|
|
27
27
|
#include "arch-x86.h"
|
|
28
28
|
|
|
29
|
-
/* NOTE: based on Linux 4
|
|
29
|
+
/* NOTE: based on Linux v5.4-rc4 */
|
|
30
30
|
const struct arch_syscall_def x86_syscall_table[] = { \
|
|
31
31
|
{ "_llseek", 140 },
|
|
32
32
|
{ "_newselect", 142 },
|
|
@@ -58,11 +58,17 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
58
58
|
{ "chown32", 212 },
|
|
59
59
|
{ "chroot", 61 },
|
|
60
60
|
{ "clock_adjtime", 343 },
|
|
61
|
+
{ "clock_adjtime64", 405 },
|
|
61
62
|
{ "clock_getres", 266 },
|
|
63
|
+
{ "clock_getres_time64", 406 },
|
|
62
64
|
{ "clock_gettime", 265 },
|
|
65
|
+
{ "clock_gettime64", 403 },
|
|
63
66
|
{ "clock_nanosleep", 267 },
|
|
67
|
+
{ "clock_nanosleep_time64", 407 },
|
|
64
68
|
{ "clock_settime", 264 },
|
|
69
|
+
{ "clock_settime64", 404 },
|
|
65
70
|
{ "clone", 120 },
|
|
71
|
+
{ "clone3", 435 },
|
|
66
72
|
{ "close", 6 },
|
|
67
73
|
{ "connect", 362 },
|
|
68
74
|
{ "copy_file_range", 377 },
|
|
@@ -106,7 +112,11 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
106
112
|
{ "flock", 143 },
|
|
107
113
|
{ "fork", 2 },
|
|
108
114
|
{ "fremovexattr", 237 },
|
|
115
|
+
{ "fsconfig", 431 },
|
|
109
116
|
{ "fsetxattr", 228 },
|
|
117
|
+
{ "fsmount", 432 },
|
|
118
|
+
{ "fsopen", 430 },
|
|
119
|
+
{ "fspick", 433 },
|
|
110
120
|
{ "fstat", 108 },
|
|
111
121
|
{ "fstat64", 197 },
|
|
112
122
|
{ "fstatat64", 300 },
|
|
@@ -117,6 +127,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
117
127
|
{ "ftruncate", 93 },
|
|
118
128
|
{ "ftruncate64", 194 },
|
|
119
129
|
{ "futex", 240 },
|
|
130
|
+
{ "futex_time64", 422 },
|
|
120
131
|
{ "futimesat", 299 },
|
|
121
132
|
{ "get_kernel_syms", 130 },
|
|
122
133
|
{ "get_mempolicy", 275 },
|
|
@@ -169,8 +180,12 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
169
180
|
{ "io_destroy", 246 },
|
|
170
181
|
{ "io_getevents", 247 },
|
|
171
182
|
{ "io_pgetevents", 385 },
|
|
183
|
+
{ "io_pgetevents_time64", 416 },
|
|
172
184
|
{ "io_setup", 245 },
|
|
173
185
|
{ "io_submit", 248 },
|
|
186
|
+
{ "io_uring_setup", 425 },
|
|
187
|
+
{ "io_uring_enter", 426 },
|
|
188
|
+
{ "io_uring_register", 427 },
|
|
174
189
|
{ "ioctl", 54 },
|
|
175
190
|
{ "ioperm", 101 },
|
|
176
191
|
{ "iopl", 110 },
|
|
@@ -214,6 +229,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
214
229
|
{ "mmap2", 192 },
|
|
215
230
|
{ "modify_ldt", 123 },
|
|
216
231
|
{ "mount", 21 },
|
|
232
|
+
{ "move_mount", 429 },
|
|
217
233
|
{ "move_pages", 317 },
|
|
218
234
|
{ "mprotect", 125 },
|
|
219
235
|
{ "mpx", 56 },
|
|
@@ -221,13 +237,15 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
221
237
|
{ "mq_notify", 281 },
|
|
222
238
|
{ "mq_open", 277 },
|
|
223
239
|
{ "mq_timedreceive", 280 },
|
|
240
|
+
{ "mq_timedreceive_time64", 419 },
|
|
224
241
|
{ "mq_timedsend", 279 },
|
|
242
|
+
{ "mq_timedsend_time64", 418 },
|
|
225
243
|
{ "mq_unlink", 278 },
|
|
226
244
|
{ "mremap", 163 },
|
|
227
|
-
{ "msgctl",
|
|
228
|
-
{ "msgget",
|
|
229
|
-
{ "msgrcv",
|
|
230
|
-
{ "msgsnd",
|
|
245
|
+
{ "msgctl", 402 },
|
|
246
|
+
{ "msgget", 399 },
|
|
247
|
+
{ "msgrcv", 401 },
|
|
248
|
+
{ "msgsnd", 400 },
|
|
231
249
|
{ "msync", 144 },
|
|
232
250
|
{ "multiplexer", __PNR_multiplexer },
|
|
233
251
|
{ "munlock", 151 },
|
|
@@ -246,6 +264,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
246
264
|
{ "oldwait4", __PNR_oldwait4 },
|
|
247
265
|
{ "open", 5 },
|
|
248
266
|
{ "open_by_handle_at", 342 },
|
|
267
|
+
{ "open_tree", 428 },
|
|
249
268
|
{ "openat", 295 },
|
|
250
269
|
{ "pause", 29 },
|
|
251
270
|
{ "pciconfig_iobase", __PNR_pciconfig_iobase },
|
|
@@ -253,6 +272,8 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
253
272
|
{ "pciconfig_write", __PNR_pciconfig_write },
|
|
254
273
|
{ "perf_event_open", 336 },
|
|
255
274
|
{ "personality", 136 },
|
|
275
|
+
{ "pidfd_open", 434 },
|
|
276
|
+
{ "pidfd_send_signal", 424 },
|
|
256
277
|
{ "pipe", 42 },
|
|
257
278
|
{ "pipe2", 331 },
|
|
258
279
|
{ "pivot_root", 217 },
|
|
@@ -261,6 +282,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
261
282
|
{ "pkey_mprotect", 380 },
|
|
262
283
|
{ "poll", 168 },
|
|
263
284
|
{ "ppoll", 309 },
|
|
285
|
+
{ "ppoll_time64", 414 },
|
|
264
286
|
{ "prctl", 172 },
|
|
265
287
|
{ "pread64", 180 },
|
|
266
288
|
{ "preadv", 333 },
|
|
@@ -271,6 +293,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
271
293
|
{ "prof", 44 },
|
|
272
294
|
{ "profil", 98 },
|
|
273
295
|
{ "pselect6", 308 },
|
|
296
|
+
{ "pselect6_time64", 413 },
|
|
274
297
|
{ "ptrace", 26 },
|
|
275
298
|
{ "putpmsg", 189 },
|
|
276
299
|
{ "pwrite64", 181 },
|
|
@@ -288,6 +311,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
288
311
|
{ "recv", __PNR_recv },
|
|
289
312
|
{ "recvfrom", 371 },
|
|
290
313
|
{ "recvmmsg", 337 },
|
|
314
|
+
{ "recvmmsg_time64", 417 },
|
|
291
315
|
{ "recvmsg", 372 },
|
|
292
316
|
{ "remap_file_pages", 257 },
|
|
293
317
|
{ "removexattr", 235 },
|
|
@@ -305,6 +329,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
305
329
|
{ "rt_sigreturn", 173 },
|
|
306
330
|
{ "rt_sigsuspend", 179 },
|
|
307
331
|
{ "rt_sigtimedwait", 177 },
|
|
332
|
+
{ "rt_sigtimedwait_time64", 421 },
|
|
308
333
|
{ "rt_tgsigqueueinfo", 335 },
|
|
309
334
|
{ "rtas", __PNR_rtas },
|
|
310
335
|
{ "s390_guarded_storage", __PNR_s390_guarded_storage },
|
|
@@ -319,6 +344,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
319
344
|
{ "sched_getparam", 155 },
|
|
320
345
|
{ "sched_getscheduler", 157 },
|
|
321
346
|
{ "sched_rr_get_interval", 161 },
|
|
347
|
+
{ "sched_rr_get_interval_time64", 423 },
|
|
322
348
|
{ "sched_setaffinity", 241 },
|
|
323
349
|
{ "sched_setattr", 351 },
|
|
324
350
|
{ "sched_setparam", 154 },
|
|
@@ -327,10 +353,11 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
327
353
|
{ "seccomp", 354 },
|
|
328
354
|
{ "security", __PNR_security },
|
|
329
355
|
{ "select", 82 },
|
|
330
|
-
{ "semctl",
|
|
331
|
-
{ "semget",
|
|
356
|
+
{ "semctl", 394 },
|
|
357
|
+
{ "semget", 393 },
|
|
332
358
|
{ "semop", __PNR_semop },
|
|
333
359
|
{ "semtimedop", __PNR_semtimedop },
|
|
360
|
+
{ "semtimedop_time64", 420 },
|
|
334
361
|
{ "send", __PNR_send },
|
|
335
362
|
{ "sendfile", 187 },
|
|
336
363
|
{ "sendfile64", 239 },
|
|
@@ -372,10 +399,10 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
372
399
|
{ "setuid32", 213 },
|
|
373
400
|
{ "setxattr", 226 },
|
|
374
401
|
{ "sgetmask", 68 },
|
|
375
|
-
{ "shmat",
|
|
376
|
-
{ "shmctl",
|
|
377
|
-
{ "shmdt",
|
|
378
|
-
{ "shmget",
|
|
402
|
+
{ "shmat", 397 },
|
|
403
|
+
{ "shmctl", 396 },
|
|
404
|
+
{ "shmdt", 398 },
|
|
405
|
+
{ "shmget", 395 },
|
|
379
406
|
{ "shutdown", 373 },
|
|
380
407
|
{ "sigaction", 67 },
|
|
381
408
|
{ "sigaltstack", 186 },
|
|
@@ -424,11 +451,15 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
424
451
|
{ "timer_delete", 263 },
|
|
425
452
|
{ "timer_getoverrun", 262 },
|
|
426
453
|
{ "timer_gettime", 261 },
|
|
454
|
+
{ "timer_gettime64", 408 },
|
|
427
455
|
{ "timer_settime", 260 },
|
|
456
|
+
{ "timer_settime64", 409 },
|
|
428
457
|
{ "timerfd", __PNR_timerfd },
|
|
429
458
|
{ "timerfd_create", 322 },
|
|
430
459
|
{ "timerfd_gettime", 326 },
|
|
460
|
+
{ "timerfd_gettime64", 410 },
|
|
431
461
|
{ "timerfd_settime", 325 },
|
|
462
|
+
{ "timerfd_settime64", 411 },
|
|
432
463
|
{ "times", 43 },
|
|
433
464
|
{ "tkill", 238 },
|
|
434
465
|
{ "truncate", 92 },
|
|
@@ -450,6 +481,7 @@ const struct arch_syscall_def x86_syscall_table[] = { \
|
|
|
450
481
|
{ "ustat", 62 },
|
|
451
482
|
{ "utime", 30 },
|
|
452
483
|
{ "utimensat", 320 },
|
|
484
|
+
{ "utimensat_time64", 412 },
|
|
453
485
|
{ "utimes", 271 },
|
|
454
486
|
{ "vfork", 190 },
|
|
455
487
|
{ "vhangup", 111 },
|
|
@@ -483,7 +515,7 @@ int x86_syscall_resolve_name(const char *name)
|
|
|
483
515
|
|
|
484
516
|
if (strcmp(name, "accept") == 0)
|
|
485
517
|
return __PNR_accept;
|
|
486
|
-
if (strcmp(name, "accept4") == 0)
|
|
518
|
+
else if (strcmp(name, "accept4") == 0)
|
|
487
519
|
return __PNR_accept4;
|
|
488
520
|
else if (strcmp(name, "bind") == 0)
|
|
489
521
|
return __PNR_bind;
|
|
@@ -522,6 +554,31 @@ int x86_syscall_resolve_name(const char *name)
|
|
|
522
554
|
else if (strcmp(name, "socketpair") == 0)
|
|
523
555
|
return __PNR_socketpair;
|
|
524
556
|
|
|
557
|
+
if (strcmp(name, "semop") == 0)
|
|
558
|
+
return __PNR_semop;
|
|
559
|
+
else if (strcmp(name, "semget") == 0)
|
|
560
|
+
return __PNR_semget;
|
|
561
|
+
else if (strcmp(name, "semctl") == 0)
|
|
562
|
+
return __PNR_semctl;
|
|
563
|
+
else if (strcmp(name, "semtimedop") == 0)
|
|
564
|
+
return __PNR_semtimedop;
|
|
565
|
+
else if (strcmp(name, "msgsnd") == 0)
|
|
566
|
+
return __PNR_msgsnd;
|
|
567
|
+
else if (strcmp(name, "msgrcv") == 0)
|
|
568
|
+
return __PNR_msgrcv;
|
|
569
|
+
else if (strcmp(name, "msgget") == 0)
|
|
570
|
+
return __PNR_msgget;
|
|
571
|
+
else if (strcmp(name, "msgctl") == 0)
|
|
572
|
+
return __PNR_msgctl;
|
|
573
|
+
else if (strcmp(name, "shmat") == 0)
|
|
574
|
+
return __PNR_shmat;
|
|
575
|
+
else if (strcmp(name, "shmdt") == 0)
|
|
576
|
+
return __PNR_shmdt;
|
|
577
|
+
else if (strcmp(name, "shmget") == 0)
|
|
578
|
+
return __PNR_shmget;
|
|
579
|
+
else if (strcmp(name, "shmctl") == 0)
|
|
580
|
+
return __PNR_shmctl;
|
|
581
|
+
|
|
525
582
|
for (iter = 0; table[iter].name != NULL; iter++) {
|
|
526
583
|
if (strcmp(name, table[iter].name) == 0)
|
|
527
584
|
return table[iter].num;
|
|
@@ -587,6 +644,31 @@ const char *x86_syscall_resolve_num(int num)
|
|
|
587
644
|
else if (num == __PNR_socketpair)
|
|
588
645
|
return "socketpair";
|
|
589
646
|
|
|
647
|
+
if (num == __PNR_semop)
|
|
648
|
+
return "semop";
|
|
649
|
+
else if (num == __PNR_semget)
|
|
650
|
+
return "semget";
|
|
651
|
+
else if (num == __PNR_semctl)
|
|
652
|
+
return "semctl";
|
|
653
|
+
else if (num == __PNR_semtimedop)
|
|
654
|
+
return "semtimedop";
|
|
655
|
+
else if (num == __PNR_msgsnd)
|
|
656
|
+
return "msgsnd";
|
|
657
|
+
else if (num == __PNR_msgrcv)
|
|
658
|
+
return "msgrcv";
|
|
659
|
+
else if (num == __PNR_msgget)
|
|
660
|
+
return "msgget";
|
|
661
|
+
else if (num == __PNR_msgctl)
|
|
662
|
+
return "msgctl";
|
|
663
|
+
else if (num == __PNR_shmat)
|
|
664
|
+
return "shmat";
|
|
665
|
+
else if (num == __PNR_shmdt)
|
|
666
|
+
return "shmdt";
|
|
667
|
+
else if (num == __PNR_shmget)
|
|
668
|
+
return "shmget";
|
|
669
|
+
else if (num == __PNR_shmctl)
|
|
670
|
+
return "shmctl";
|
|
671
|
+
|
|
590
672
|
for (iter = 0; table[iter].num != __NR_SCMP_ERROR; iter++) {
|
|
591
673
|
if (num == table[iter].num)
|
|
592
674
|
return table[iter].name;
|
|
@@ -43,16 +43,16 @@ const struct arch_def arch_def_x86 = {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
* Convert a multiplexed pseudo
|
|
47
|
-
* @param
|
|
46
|
+
* Convert a multiplexed pseudo syscall into a direct syscall
|
|
47
|
+
* @param syscall the multiplexed pseudo syscall number
|
|
48
48
|
*
|
|
49
49
|
* Return the related direct syscall number, __NR_SCMP_UNDEF is there is
|
|
50
50
|
* no related syscall, or __NR_SCMP_ERROR otherwise.
|
|
51
51
|
*
|
|
52
52
|
*/
|
|
53
|
-
static int
|
|
53
|
+
static int _x86_syscall_demux(int syscall)
|
|
54
54
|
{
|
|
55
|
-
switch (
|
|
55
|
+
switch (syscall) {
|
|
56
56
|
case -101:
|
|
57
57
|
/* socket */
|
|
58
58
|
return 359;
|
|
@@ -113,20 +113,56 @@ static int _x86_sock_demux(int socketcall)
|
|
|
113
113
|
case -120:
|
|
114
114
|
/* sendmmsg */
|
|
115
115
|
return 345;
|
|
116
|
+
case -201:
|
|
117
|
+
/* semop - not defined */
|
|
118
|
+
return __NR_SCMP_UNDEF;
|
|
119
|
+
case -202:
|
|
120
|
+
/* semget */
|
|
121
|
+
return 393;
|
|
122
|
+
case -203:
|
|
123
|
+
/* semctl */
|
|
124
|
+
return 394;
|
|
125
|
+
case -204:
|
|
126
|
+
/* semtimedop - not defined */
|
|
127
|
+
return __NR_SCMP_UNDEF;
|
|
128
|
+
case -211:
|
|
129
|
+
/* msgsnd */
|
|
130
|
+
return 400;
|
|
131
|
+
case -212:
|
|
132
|
+
/* msgrcv */
|
|
133
|
+
return 401;
|
|
134
|
+
case -213:
|
|
135
|
+
/* msgget */
|
|
136
|
+
return 399;
|
|
137
|
+
case -214:
|
|
138
|
+
/* msgctl */
|
|
139
|
+
return 402;
|
|
140
|
+
case -221:
|
|
141
|
+
/* shmat */
|
|
142
|
+
return 397;
|
|
143
|
+
case -222:
|
|
144
|
+
/* shmdt */
|
|
145
|
+
return 398;
|
|
146
|
+
case -223:
|
|
147
|
+
/* shmget */
|
|
148
|
+
return 395;
|
|
149
|
+
case -224:
|
|
150
|
+
/* shmctl */
|
|
151
|
+
return 396;
|
|
116
152
|
}
|
|
117
153
|
|
|
118
154
|
return __NR_SCMP_ERROR;
|
|
119
155
|
}
|
|
120
156
|
|
|
121
157
|
/**
|
|
122
|
-
* Convert a direct
|
|
158
|
+
* Convert a direct syscall into multiplexed pseudo socket syscall
|
|
123
159
|
* @param syscall the direct syscall
|
|
124
160
|
*
|
|
125
161
|
* Return the related multiplexed pseduo syscall number, __NR_SCMP_UNDEF is
|
|
126
162
|
* there is no related pseudo syscall, or __NR_SCMP_ERROR otherwise.
|
|
127
163
|
*
|
|
128
164
|
*/
|
|
129
|
-
static int
|
|
165
|
+
static int _x86_syscall_mux(int syscall)
|
|
130
166
|
{
|
|
131
167
|
switch (syscall) {
|
|
132
168
|
case 337:
|
|
@@ -180,6 +216,36 @@ static int _x86_sock_mux(int syscall)
|
|
|
180
216
|
case 373:
|
|
181
217
|
/* shutdown */
|
|
182
218
|
return -113;
|
|
219
|
+
case 393:
|
|
220
|
+
/* semget */
|
|
221
|
+
return -202;
|
|
222
|
+
case 394:
|
|
223
|
+
/* semctl */
|
|
224
|
+
return -203;
|
|
225
|
+
case 400:
|
|
226
|
+
/* msgsnd */
|
|
227
|
+
return -211;
|
|
228
|
+
case 401:
|
|
229
|
+
/* msgrcv */
|
|
230
|
+
return -212;
|
|
231
|
+
case 399:
|
|
232
|
+
/* msgget */
|
|
233
|
+
return -213;
|
|
234
|
+
case 402:
|
|
235
|
+
/* msgctl */
|
|
236
|
+
return -214;
|
|
237
|
+
case 397:
|
|
238
|
+
/* shmat */
|
|
239
|
+
return -221;
|
|
240
|
+
case 398:
|
|
241
|
+
/* shmdt */
|
|
242
|
+
return -222;
|
|
243
|
+
case 395:
|
|
244
|
+
/* shmget */
|
|
245
|
+
return -223;
|
|
246
|
+
case 396:
|
|
247
|
+
/* shmctl */
|
|
248
|
+
return -224;
|
|
183
249
|
}
|
|
184
250
|
|
|
185
251
|
return __NR_SCMP_ERROR;
|
|
@@ -244,7 +310,7 @@ int x86_rule_add(struct db_filter *db, struct db_api_rule_list *rule)
|
|
|
244
310
|
|
|
245
311
|
/* determine both the muxed and direct syscall numbers */
|
|
246
312
|
if (sys > 0) {
|
|
247
|
-
sys_a =
|
|
313
|
+
sys_a = _x86_syscall_mux(sys);
|
|
248
314
|
if (sys_a == __NR_SCMP_ERROR) {
|
|
249
315
|
rc = __NR_SCMP_ERROR;
|
|
250
316
|
goto add_return;
|
|
@@ -252,7 +318,7 @@ int x86_rule_add(struct db_filter *db, struct db_api_rule_list *rule)
|
|
|
252
318
|
sys_b = sys;
|
|
253
319
|
} else {
|
|
254
320
|
sys_a = sys;
|
|
255
|
-
sys_b =
|
|
321
|
+
sys_b = _x86_syscall_demux(sys);
|
|
256
322
|
if (sys_b == __NR_SCMP_ERROR) {
|
|
257
323
|
rc = __NR_SCMP_ERROR;
|
|
258
324
|
goto add_return;
|
|
@@ -305,24 +371,81 @@ int x86_rule_add(struct db_filter *db, struct db_api_rule_list *rule)
|
|
|
305
371
|
if (rc < 0)
|
|
306
372
|
goto add_return;
|
|
307
373
|
}
|
|
308
|
-
} else if (sys <= -200 && sys >= -224) {
|
|
309
|
-
/* multiplexed ipc syscalls
|
|
374
|
+
} else if ((sys <= -200 && sys >= -224) || (sys >= 393 && sys <= 402)) {
|
|
375
|
+
/* (-200 to -224) : multiplexed ipc syscalls
|
|
376
|
+
(393 to 402) : direct ipc syscalls */
|
|
377
|
+
|
|
378
|
+
/* strict check for the multiplexed socket syscalls */
|
|
310
379
|
for (iter = 0; iter < ARG_COUNT_MAX; iter++) {
|
|
311
380
|
if ((rule->args[iter].valid != 0) && (rule->strict)) {
|
|
312
381
|
rc = -EINVAL;
|
|
313
382
|
goto add_return;
|
|
314
383
|
}
|
|
315
384
|
}
|
|
316
|
-
rule->args[0].arg = 0;
|
|
317
|
-
rule->args[0].op = SCMP_CMP_EQ;
|
|
318
|
-
rule->args[0].mask = DATUM_MAX;
|
|
319
|
-
rule->args[0].datum = abs(sys) % 200;
|
|
320
|
-
rule->args[0].valid = 1;
|
|
321
|
-
rule->syscall = __x86_NR_ipc;
|
|
322
385
|
|
|
323
|
-
|
|
324
|
-
if (
|
|
325
|
-
|
|
386
|
+
/* determine both the muxed and direct syscall numbers */
|
|
387
|
+
if (sys > 0) {
|
|
388
|
+
sys_a = _x86_syscall_mux(sys);
|
|
389
|
+
if (sys_a == __NR_SCMP_ERROR) {
|
|
390
|
+
rc = __NR_SCMP_ERROR;
|
|
391
|
+
goto add_return;
|
|
392
|
+
}
|
|
393
|
+
sys_b = sys;
|
|
394
|
+
} else {
|
|
395
|
+
sys_a = sys;
|
|
396
|
+
sys_b = _x86_syscall_demux(sys);
|
|
397
|
+
if (sys_b == __NR_SCMP_ERROR) {
|
|
398
|
+
rc = __NR_SCMP_ERROR;
|
|
399
|
+
goto add_return;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* use rule_a for the multiplexed syscall and use rule_b for
|
|
404
|
+
* the direct wired syscall */
|
|
405
|
+
|
|
406
|
+
if (sys_a == __NR_SCMP_UNDEF) {
|
|
407
|
+
rule_a = NULL;
|
|
408
|
+
rule_b = rule;
|
|
409
|
+
} else if (sys_b == __NR_SCMP_UNDEF) {
|
|
410
|
+
rule_a = rule;
|
|
411
|
+
rule_b = NULL;
|
|
412
|
+
} else {
|
|
413
|
+
/* need two rules, dup the first and link together */
|
|
414
|
+
rule_a = rule;
|
|
415
|
+
rule_dup = db_rule_dup(rule_a);
|
|
416
|
+
rule_b = rule_dup;
|
|
417
|
+
if (rule_b == NULL)
|
|
418
|
+
goto add_return;
|
|
419
|
+
rule_b->prev = rule_a;
|
|
420
|
+
rule_b->next = NULL;
|
|
421
|
+
rule_a->next = rule_b;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
/* multiplexed socket syscalls */
|
|
425
|
+
if (rule_a != NULL) {
|
|
426
|
+
rule_a->syscall = __x86_NR_ipc;
|
|
427
|
+
rule_a->args[0].arg = 0;
|
|
428
|
+
rule_a->args[0].op = SCMP_CMP_EQ;
|
|
429
|
+
rule_a->args[0].mask = DATUM_MAX;
|
|
430
|
+
rule_a->args[0].datum = (-sys_a) % 200;
|
|
431
|
+
rule_a->args[0].valid = 1;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/* direct wired socket syscalls */
|
|
435
|
+
if (rule_b != NULL)
|
|
436
|
+
rule_b->syscall = sys_b;
|
|
437
|
+
|
|
438
|
+
/* we should be protected by a transaction checkpoint */
|
|
439
|
+
if (rule_a != NULL) {
|
|
440
|
+
rc = db_rule_add(db, rule_a);
|
|
441
|
+
if (rc < 0)
|
|
442
|
+
goto add_return;
|
|
443
|
+
}
|
|
444
|
+
if (rule_b != NULL) {
|
|
445
|
+
rc = db_rule_add(db, rule_b);
|
|
446
|
+
if (rc < 0)
|
|
447
|
+
goto add_return;
|
|
448
|
+
}
|
|
326
449
|
} else if (sys >= 0) {
|
|
327
450
|
/* normal syscall processing */
|
|
328
451
|
rc = db_rule_add(db, rule);
|