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.
Files changed (376) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +41 -45
  3. data/.travis.yml +2 -1
  4. data/Gemfile +3 -3
  5. data/README.md +7 -1
  6. data/bootstrap.sh +2 -2
  7. data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
  8. data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
  9. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
  10. data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
  11. data/ext/enterprise_script_service/libseccomp/README.md +21 -1
  12. data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
  13. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
  14. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
  15. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
  16. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
  17. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
  18. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
  19. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
  20. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
  21. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
  22. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
  24. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
  25. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
  26. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
  27. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
  28. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
  29. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
  30. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
  31. data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
  32. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
  33. data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
  34. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
  35. data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
  36. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
  37. data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
  38. data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
  39. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
  40. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
  41. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
  42. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
  43. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
  44. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
  45. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
  46. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
  47. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
  48. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
  49. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
  50. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
  51. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
  52. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
  53. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
  54. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
  55. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
  56. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
  57. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
  58. data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
  59. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
  60. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
  61. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
  62. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
  63. data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
  64. data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
  65. data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
  66. data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
  67. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
  68. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
  69. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
  70. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
  71. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
  72. data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
  73. data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
  74. data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
  75. data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
  76. data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
  77. data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
  78. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
  79. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
  80. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
  81. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
  82. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
  83. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
  84. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
  85. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
  87. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
  88. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
  89. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
  91. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
  92. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
  93. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
  94. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
  95. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
  96. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
  97. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
  98. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
  100. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
  101. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
  102. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
  103. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
  104. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
  105. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
  106. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  107. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  109. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
  111. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
  112. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
  113. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
  114. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
  117. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
  120. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
  121. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
  122. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
  123. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
  124. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
  125. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
  126. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
  127. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
  128. data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
  129. data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
  130. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  131. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
  132. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
  133. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
  134. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
  135. data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
  136. data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
  137. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
  138. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
  139. data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
  140. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  141. data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
  142. data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
  143. data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
  144. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  145. data/ext/enterprise_script_service/mruby/README.md +6 -2
  146. data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
  147. data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
  148. data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
  149. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
  150. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  151. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
  152. data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
  153. data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
  154. data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
  155. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
  156. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
  157. data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
  158. data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
  159. data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
  160. data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
  161. data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
  162. data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
  163. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
  164. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
  165. data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
  166. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
  167. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
  168. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
  169. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  170. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
  171. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
  172. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
  173. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
  174. data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
  175. data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
  176. data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
  177. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
  178. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
  179. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
  180. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  181. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
  182. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
  183. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
  184. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  185. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
  186. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
  187. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
  188. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
  189. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
  190. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
  191. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
  192. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  193. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
  194. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
  195. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
  196. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
  197. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
  198. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
  199. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
  200. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  201. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +3 -214
  202. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  203. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
  204. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
  205. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
  206. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
  207. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
  208. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  209. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
  210. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
  211. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
  212. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
  213. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
  214. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
  215. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
  216. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
  217. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
  218. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
  219. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
  220. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
  221. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
  222. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
  223. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
  224. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
  225. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
  226. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
  227. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
  228. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
  229. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
  230. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  231. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +62 -25
  232. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
  233. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
  234. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
  235. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
  236. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
  237. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
  238. data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
  239. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
  240. data/ext/enterprise_script_service/mruby/src/array.c +25 -11
  241. data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
  242. data/ext/enterprise_script_service/mruby/src/class.c +48 -32
  243. data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
  244. data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
  245. data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
  246. data/ext/enterprise_script_service/mruby/src/error.c +58 -7
  247. data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
  248. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
  249. data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
  250. data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
  251. data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
  252. data/ext/enterprise_script_service/mruby/src/load.c +56 -30
  253. data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
  254. data/ext/enterprise_script_service/mruby/src/object.c +23 -5
  255. data/ext/enterprise_script_service/mruby/src/print.c +27 -3
  256. data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
  257. data/ext/enterprise_script_service/mruby/src/range.c +4 -12
  258. data/ext/enterprise_script_service/mruby/src/state.c +34 -11
  259. data/ext/enterprise_script_service/mruby/src/string.c +93 -56
  260. data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
  261. data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
  262. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
  263. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
  264. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
  265. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
  266. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
  267. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
  268. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  269. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  270. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  271. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +15 -24
  272. data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
  273. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  274. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  275. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  276. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
  277. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
  278. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  279. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  280. data/ext/enterprise_script_service/msgpack/README.md +3 -2
  281. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  282. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
  283. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  284. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  285. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  286. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  287. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
  288. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  289. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  290. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  291. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  292. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  293. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  294. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  295. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  296. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  297. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  298. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  299. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  300. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  301. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  302. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  303. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  304. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  305. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
  306. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  307. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  308. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  309. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
  310. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
  311. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
  312. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
  313. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
  314. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
  315. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  316. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  317. data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
  318. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  319. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  320. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  321. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  322. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  323. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  324. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  325. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  326. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  327. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
  328. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  329. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
  330. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
  331. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  332. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  333. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  334. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  335. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  336. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  337. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  338. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  339. data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
  340. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  341. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  342. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
  343. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
  344. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
  345. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  346. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  347. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
  348. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  349. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  350. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
  351. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  352. data/lib/script_core/engine.rb +24 -5
  353. data/lib/script_core/executable.rb +4 -3
  354. data/lib/script_core/result.rb +1 -5
  355. data/lib/script_core/service_channel.rb +1 -0
  356. data/lib/script_core/version.rb +1 -1
  357. data/lib/tasks/script_core.rake +3 -1
  358. data/script_core.gemspec +2 -2
  359. data/spec/dummy/app/lib/script_engine.rb +64 -5
  360. metadata +68 -30
  361. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
  362. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
  363. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
  364. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
  365. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
  366. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
  367. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
  368. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
  369. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
  370. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
  371. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
  372. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
  373. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
  374. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
  375. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
  376. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -22,16 +22,8 @@
22
22
  #ifndef _ARCH_AARCH64_H
23
23
  #define _ARCH_AARCH64_H
24
24
 
25
- #include <inttypes.h>
26
-
27
25
  #include "arch.h"
28
- #include "system.h"
29
-
30
- extern const struct arch_def arch_def_aarch64;
31
-
32
- int aarch64_syscall_resolve_name(const char *name);
33
- const char *aarch64_syscall_resolve_num(int num);
34
26
 
35
- const struct arch_syscall_def *aarch64_syscall_iterate(unsigned int spot);
27
+ ARCH_DECL(aarch64)
36
28
 
37
29
  #endif
@@ -26,13 +26,58 @@
26
26
  #include "arch.h"
27
27
  #include "arch-arm.h"
28
28
 
29
+ #define __SCMP_NR_OABI_SYSCALL_BASE 0x900000
30
+ #define __SCMP_ARM_NR_BASE 0x0f0000
31
+
32
+ /* NOTE: we currently only support the ARM EABI, more info at the URL below:
33
+ * -> http://wiki.embeddedarm.com/wiki/EABI_vs_OABI */
34
+ #if 1
35
+ #define __SCMP_NR_BASE 0
36
+ #else
37
+ #define __SCMP_NR_BASE __SCMP_NR_OABI_SYSCALL_BASE
38
+ #endif
39
+
40
+ /**
41
+ * Resolve a syscall name to a number
42
+ * @param name the syscall name
43
+ *
44
+ * Resolve the given syscall name to the syscall number using the syscall table.
45
+ * Returns the syscall number on success, including negative pseudo syscall
46
+ * numbers; returns __NR_SCMP_ERROR on failure.
47
+ *
48
+ */
49
+ int arm_syscall_resolve_name_munge(const char *name)
50
+ {
51
+ int sys;
52
+
53
+ sys = arm_syscall_resolve_name(name);
54
+ if (sys == __NR_SCMP_ERROR)
55
+ return sys;
56
+
57
+ return (sys | __SCMP_NR_BASE);
58
+ }
59
+
60
+ /**
61
+ * Resolve a syscall number to a name
62
+ * @param num the syscall number
63
+ *
64
+ * Resolve the given syscall number to the syscall name using the syscall table.
65
+ * Returns a pointer to the syscall name string on success, including pseudo
66
+ * syscall names; returns NULL on failure.
67
+ *
68
+ */
69
+ const char *arm_syscall_resolve_num_munge(int num)
70
+ {
71
+ return arm_syscall_resolve_num(num & (~__SCMP_NR_BASE));
72
+ }
73
+
29
74
  const struct arch_def arch_def_arm = {
30
75
  .token = SCMP_ARCH_ARM,
31
76
  .token_bpf = AUDIT_ARCH_ARM,
32
77
  .size = ARCH_SIZE_32,
33
78
  .endian = ARCH_ENDIAN_LITTLE,
34
- .syscall_resolve_name = arm_syscall_resolve_name,
35
- .syscall_resolve_num = arm_syscall_resolve_num,
79
+ .syscall_resolve_name = arm_syscall_resolve_name_munge,
80
+ .syscall_resolve_num = arm_syscall_resolve_num_munge,
36
81
  .syscall_rewrite = NULL,
37
82
  .rule_add = NULL,
38
83
  };
@@ -22,16 +22,8 @@
22
22
  #ifndef _ARCH_ARM_H
23
23
  #define _ARCH_ARM_H
24
24
 
25
- #include <inttypes.h>
26
-
27
25
  #include "arch.h"
28
- #include "system.h"
29
-
30
- extern const struct arch_def arch_def_arm;
31
-
32
- int arm_syscall_resolve_name(const char *name);
33
- const char *arm_syscall_resolve_num(int num);
34
26
 
35
- const struct arch_syscall_def *arm_syscall_iterate(unsigned int spot);
27
+ ARCH_DECL(arm)
36
28
 
37
29
  #endif
@@ -0,0 +1,40 @@
1
+ #!/bin/bash
2
+
3
+ # NOTE: changes to the arch_syscall_table struct in syscalls.h will affect
4
+ # this script/gperf - BEWARE!
5
+
6
+ ###
7
+ # helper functions
8
+
9
+ function exit_usage() {
10
+ echo "usage: $0 <syscall_csv_file> <gperf_template>"
11
+ exit 1
12
+ }
13
+
14
+ ###
15
+ # main
16
+
17
+ # sanity check
18
+ [[ ! -r "$1" || ! -r "$2" ]] && exit_usage
19
+ sys_csv=$1
20
+ gperf_tmpl=$2
21
+
22
+ sys_csv_tmp=$(mktemp -t generate_syscalls_XXXXXX)
23
+
24
+ # filter and prepare the syscall csv file
25
+ cat $sys_csv | grep -v '^#' | nl -ba -s, -v0 | \
26
+ sed -e 's/^[[:space:]]\+\([0-9]\+\),\([^,]\+\),\(.*\)/\2,\1,\3/' \
27
+ -e ':repeat; {s|\([^,]\+\)\(.*\)[^_]PNR|\1\2,__PNR_\1|g;}; t repeat' \
28
+ > $sys_csv_tmp
29
+ [[ $? -ne 0 ]] && exit 1
30
+
31
+ # create the gperf file
32
+ sed -e "/@@SYSCALLS_TABLE@@/r $sys_csv_tmp" \
33
+ -e '/@@SYSCALLS_TABLE@@/d' \
34
+ $gperf_tmpl > syscalls.perf
35
+ [[ $? -ne 0 ]] && exit 1
36
+
37
+ # cleanup
38
+ rm -f $sys_csv_tmp
39
+
40
+ exit 0
@@ -27,13 +27,50 @@
27
27
  #include "arch.h"
28
28
  #include "arch-mips.h"
29
29
 
30
+ /* O32 ABI */
31
+ #define __SCMP_NR_BASE 4000
32
+
33
+ /**
34
+ * Resolve a syscall name to a number
35
+ * @param name the syscall name
36
+ *
37
+ * Resolve the given syscall name to the syscall number using the syscall table.
38
+ * Returns the syscall number on success, including negative pseudo syscall
39
+ * numbers; returns __NR_SCMP_ERROR on failure.
40
+ *
41
+ */
42
+ int mips_syscall_resolve_name_munge(const char *name)
43
+ {
44
+ int sys;
45
+
46
+ sys = mips_syscall_resolve_name(name);
47
+ if (sys == __NR_SCMP_ERROR)
48
+ return sys;
49
+
50
+ return sys + __SCMP_NR_BASE;
51
+ }
52
+
53
+ /**
54
+ * Resolve a syscall number to a name
55
+ * @param num the syscall number
56
+ *
57
+ * Resolve the given syscall number to the syscall name using the syscall table.
58
+ * Returns a pointer to the syscall name string on success, including pseudo
59
+ * syscall names; returns NULL on failure.
60
+ *
61
+ */
62
+ const char *mips_syscall_resolve_num_munge(int num)
63
+ {
64
+ return mips_syscall_resolve_num(num - __SCMP_NR_BASE);
65
+ }
66
+
30
67
  const struct arch_def arch_def_mips = {
31
68
  .token = SCMP_ARCH_MIPS,
32
69
  .token_bpf = AUDIT_ARCH_MIPS,
33
70
  .size = ARCH_SIZE_32,
34
71
  .endian = ARCH_ENDIAN_BIG,
35
- .syscall_resolve_name = mips_syscall_resolve_name,
36
- .syscall_resolve_num = mips_syscall_resolve_num,
72
+ .syscall_resolve_name = mips_syscall_resolve_name_munge,
73
+ .syscall_resolve_num = mips_syscall_resolve_num_munge,
37
74
  .syscall_rewrite = NULL,
38
75
  .rule_add = NULL,
39
76
  };
@@ -43,8 +80,8 @@ const struct arch_def arch_def_mipsel = {
43
80
  .token_bpf = AUDIT_ARCH_MIPSEL,
44
81
  .size = ARCH_SIZE_32,
45
82
  .endian = ARCH_ENDIAN_LITTLE,
46
- .syscall_resolve_name = mips_syscall_resolve_name,
47
- .syscall_resolve_num = mips_syscall_resolve_num,
83
+ .syscall_resolve_name = mips_syscall_resolve_name_munge,
84
+ .syscall_resolve_num = mips_syscall_resolve_num_munge,
48
85
  .syscall_rewrite = NULL,
49
86
  .rule_add = NULL,
50
87
  };
@@ -23,17 +23,9 @@
23
23
  #ifndef _ARCH_MIPS_H
24
24
  #define _ARCH_MIPS_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_mips;
32
- extern const struct arch_def arch_def_mipsel;
33
-
34
- int mips_syscall_resolve_name(const char *name);
35
- const char *mips_syscall_resolve_num(int num);
36
27
 
37
- const struct arch_syscall_def *mips_syscall_iterate(unsigned int spot);
28
+ ARCH_DECL(mips)
29
+ ARCH_DECL(mipsel)
38
30
 
39
31
  #endif
@@ -25,13 +25,50 @@
25
25
  #include "arch.h"
26
26
  #include "arch-mips64.h"
27
27
 
28
+ /* 64 ABI */
29
+ #define __SCMP_NR_BASE 5000
30
+
31
+ /**
32
+ * Resolve a syscall name to a number
33
+ * @param name the syscall name
34
+ *
35
+ * Resolve the given syscall name to the syscall number using the syscall table.
36
+ * Returns the syscall number on success, including negative pseudo syscall
37
+ * numbers; returns __NR_SCMP_ERROR on failure.
38
+ *
39
+ */
40
+ int mips64_syscall_resolve_name_munge(const char *name)
41
+ {
42
+ int sys;
43
+
44
+ sys = mips64_syscall_resolve_name(name);
45
+ if (sys == __NR_SCMP_ERROR)
46
+ return sys;
47
+
48
+ return sys + __SCMP_NR_BASE;
49
+ }
50
+
51
+ /**
52
+ * Resolve a syscall number to a name
53
+ * @param num the syscall number
54
+ *
55
+ * Resolve the given syscall number to the syscall name using the syscall table.
56
+ * Returns a pointer to the syscall name string on success, including pseudo
57
+ * syscall names; returns NULL on failure.
58
+ *
59
+ */
60
+ const char *mips64_syscall_resolve_num_munge(int num)
61
+ {
62
+ return mips64_syscall_resolve_num(num - __SCMP_NR_BASE);
63
+ }
64
+
28
65
  const struct arch_def arch_def_mips64 = {
29
66
  .token = SCMP_ARCH_MIPS64,
30
67
  .token_bpf = AUDIT_ARCH_MIPS64,
31
68
  .size = ARCH_SIZE_64,
32
69
  .endian = ARCH_ENDIAN_BIG,
33
- .syscall_resolve_name = mips64_syscall_resolve_name,
34
- .syscall_resolve_num = mips64_syscall_resolve_num,
70
+ .syscall_resolve_name = mips64_syscall_resolve_name_munge,
71
+ .syscall_resolve_num = mips64_syscall_resolve_num_munge,
35
72
  .syscall_rewrite = NULL,
36
73
  .rule_add = NULL,
37
74
  };
@@ -41,8 +78,8 @@ const struct arch_def arch_def_mipsel64 = {
41
78
  .token_bpf = AUDIT_ARCH_MIPSEL64,
42
79
  .size = ARCH_SIZE_64,
43
80
  .endian = ARCH_ENDIAN_LITTLE,
44
- .syscall_resolve_name = mips64_syscall_resolve_name,
45
- .syscall_resolve_num = mips64_syscall_resolve_num,
81
+ .syscall_resolve_name = mips64_syscall_resolve_name_munge,
82
+ .syscall_resolve_num = mips64_syscall_resolve_num_munge,
46
83
  .syscall_rewrite = NULL,
47
84
  .rule_add = NULL,
48
85
  };
@@ -23,17 +23,9 @@
23
23
  #ifndef _ARCH_MIPS64_H
24
24
  #define _ARCH_MIPS64_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_mips64;
32
- extern const struct arch_def arch_def_mipsel64;
33
-
34
- int mips64_syscall_resolve_name(const char *name);
35
- const char *mips64_syscall_resolve_num(int num);
36
27
 
37
- const struct arch_syscall_def *mips64_syscall_iterate(unsigned int spot);
28
+ ARCH_DECL(mips64)
29
+ ARCH_DECL(mipsel64)
38
30
 
39
- #endif
31
+ #endif
@@ -27,13 +27,50 @@
27
27
  #include "arch.h"
28
28
  #include "arch-mips64n32.h"
29
29
 
30
+ /* N32 ABI */
31
+ #define __SCMP_NR_BASE 6000
32
+
33
+ /**
34
+ * Resolve a syscall name to a number
35
+ * @param name the syscall name
36
+ *
37
+ * Resolve the given syscall name to the syscall number using the syscall table.
38
+ * Returns the syscall number on success, including negative pseudo syscall
39
+ * numbers; returns __NR_SCMP_ERROR on failure.
40
+ *
41
+ */
42
+ int mips64n32_syscall_resolve_name_munge(const char *name)
43
+ {
44
+ int sys;
45
+
46
+ sys = mips64n32_syscall_resolve_name(name);
47
+ if (sys == __NR_SCMP_ERROR)
48
+ return sys;
49
+
50
+ return sys + __SCMP_NR_BASE;
51
+ }
52
+
53
+ /**
54
+ * Resolve a syscall number to a name
55
+ * @param num the syscall number
56
+ *
57
+ * Resolve the given syscall number to the syscall name using the syscall table.
58
+ * Returns a pointer to the syscall name string on success, including pseudo
59
+ * syscall names; returns NULL on failure.
60
+ *
61
+ */
62
+ const char *mips64n32_syscall_resolve_num_munge(int num)
63
+ {
64
+ return mips64n32_syscall_resolve_num(num - __SCMP_NR_BASE);
65
+ }
66
+
30
67
  const struct arch_def arch_def_mips64n32 = {
31
68
  .token = SCMP_ARCH_MIPS64N32,
32
69
  .token_bpf = AUDIT_ARCH_MIPS64N32,
33
70
  .size = ARCH_SIZE_32,
34
71
  .endian = ARCH_ENDIAN_BIG,
35
- .syscall_resolve_name = mips64n32_syscall_resolve_name,
36
- .syscall_resolve_num = mips64n32_syscall_resolve_num,
72
+ .syscall_resolve_name = mips64n32_syscall_resolve_name_munge,
73
+ .syscall_resolve_num = mips64n32_syscall_resolve_num_munge,
37
74
  .syscall_rewrite = NULL,
38
75
  .rule_add = NULL,
39
76
  };
@@ -43,8 +80,8 @@ const struct arch_def arch_def_mipsel64n32 = {
43
80
  .token_bpf = AUDIT_ARCH_MIPSEL64N32,
44
81
  .size = ARCH_SIZE_32,
45
82
  .endian = ARCH_ENDIAN_LITTLE,
46
- .syscall_resolve_name = mips64n32_syscall_resolve_name,
47
- .syscall_resolve_num = mips64n32_syscall_resolve_num,
83
+ .syscall_resolve_name = mips64n32_syscall_resolve_name_munge,
84
+ .syscall_resolve_num = mips64n32_syscall_resolve_num_munge,
48
85
  .syscall_rewrite = NULL,
49
86
  .rule_add = NULL,
50
87
  };
@@ -23,17 +23,9 @@
23
23
  #ifndef _ARCH_MIPS64N32_H
24
24
  #define _ARCH_MIPS64N32_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_mips64n32;
32
- extern const struct arch_def arch_def_mipsel64n32;
33
-
34
- int mips64n32_syscall_resolve_name(const char *name);
35
- const char *mips64n32_syscall_resolve_num(int num);
36
27
 
37
- const struct arch_syscall_def *mips64n32_syscall_iterate(unsigned int spot);
28
+ ARCH_DECL(mips64n32)
29
+ ARCH_DECL(mipsel64n32)
38
30
 
39
31
  #endif
@@ -22,17 +22,8 @@
22
22
  #ifndef _ARCH_PARISC_H
23
23
  #define _ARCH_PARISC_H
24
24
 
25
- #include <inttypes.h>
26
-
27
25
  #include "arch.h"
28
- #include "system.h"
29
-
30
- extern const struct arch_def arch_def_parisc;
31
- extern const struct arch_def arch_def_parisc64;
32
-
33
- int parisc_syscall_resolve_name(const char *name);
34
- const char *parisc_syscall_resolve_num(int num);
35
26
 
36
- const struct arch_syscall_def *parisc_syscall_iterate(unsigned int spot);
27
+ ARCH_DECL(parisc)
37
28
 
38
29
  #endif
@@ -8,15 +8,15 @@
8
8
  #include <linux/audit.h>
9
9
 
10
10
  #include "arch.h"
11
- #include "arch-parisc.h"
11
+ #include "arch-parisc64.h"
12
12
 
13
13
  const struct arch_def arch_def_parisc64 = {
14
14
  .token = SCMP_ARCH_PARISC64,
15
15
  .token_bpf = AUDIT_ARCH_PARISC64,
16
16
  .size = ARCH_SIZE_64,
17
17
  .endian = ARCH_ENDIAN_BIG,
18
- .syscall_resolve_name = parisc_syscall_resolve_name,
19
- .syscall_resolve_num = parisc_syscall_resolve_num,
18
+ .syscall_resolve_name = parisc64_syscall_resolve_name,
19
+ .syscall_resolve_num = parisc64_syscall_resolve_num,
20
20
  .syscall_rewrite = NULL,
21
21
  .rule_add = NULL,
22
22
  };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Enhanced Seccomp PARISC Specific Code
3
+ *
4
+ * Copyright (c) 2016 Helge Deller <deller@gmx.de>
5
+ *
6
+ */
7
+
8
+ /*
9
+ * This library is free software; you can redistribute it and/or modify it
10
+ * under the terms of version 2.1 of the GNU Lesser General Public License as
11
+ * published by the Free Software Foundation.
12
+ *
13
+ * This library is distributed in the hope that it will be useful, but WITHOUT
14
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16
+ * for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public License
19
+ * along with this library; if not, see <http://www.gnu.org/licenses>.
20
+ */
21
+
22
+ #ifndef _ARCH_PARISC64_H
23
+ #define _ARCH_PARISC64_H
24
+
25
+ #include "arch.h"
26
+
27
+ ARCH_DECL(parisc64)
28
+
29
+ #endif