immunio 1.2.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -5
- data/ext/immunio/Rakefile +14 -6
- data/lib/immunio/context.rb +2 -0
- data/lib/immunio/plugins/action_view.rb +7 -668
- data/lib/immunio/plugins/action_view/action_view.rb +22 -0
- data/lib/immunio/plugins/action_view/active_support_hash.rb +29 -0
- data/lib/immunio/plugins/action_view/cache_store.rb +24 -0
- data/lib/immunio/plugins/action_view/erubi.rb +38 -0
- data/lib/immunio/plugins/action_view/erubis.rb +39 -0
- data/lib/immunio/plugins/action_view/fragment_caching.rb +29 -0
- data/lib/immunio/plugins/action_view/haml.rb +46 -0
- data/lib/immunio/plugins/action_view/slim.rb +42 -0
- data/lib/immunio/plugins/action_view/template.rb +431 -0
- data/lib/immunio/plugins/action_view/template_rendering.rb +45 -0
- data/lib/immunio/plugins/http_tracker.rb +2 -0
- data/lib/immunio/plugins/io.rb +34 -0
- data/lib/immunio/version.rb +1 -1
- data/lua-hooks/Makefile +36 -9
- data/lua-hooks/ext/luajit/COPYRIGHT +1 -1
- data/lua-hooks/ext/luajit/Makefile +22 -15
- data/lua-hooks/ext/luajit/README +2 -2
- data/lua-hooks/ext/luajit/doc/bluequad-print.css +1 -1
- data/lua-hooks/ext/luajit/doc/bluequad.css +1 -1
- data/lua-hooks/ext/luajit/doc/changes.html +69 -3
- data/lua-hooks/ext/luajit/doc/contact.html +10 -3
- data/lua-hooks/ext/luajit/doc/ext_c_api.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +3 -4
- data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +2 -2
- data/lua-hooks/ext/luajit/doc/ext_jit.html +3 -3
- data/lua-hooks/ext/luajit/doc/ext_profiler.html +2 -2
- data/lua-hooks/ext/luajit/doc/extensions.html +47 -20
- data/lua-hooks/ext/luajit/doc/faq.html +2 -2
- data/lua-hooks/ext/luajit/doc/install.html +74 -45
- data/lua-hooks/ext/luajit/doc/luajit.html +5 -5
- data/lua-hooks/ext/luajit/doc/running.html +3 -3
- data/lua-hooks/ext/luajit/doc/status.html +13 -8
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +8 -5
- data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +66 -11
- data/lua-hooks/ext/luajit/dynasm/dasm_mips64.lua +12 -0
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +1 -1
- data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +5 -1
- data/lua-hooks/ext/luajit/dynasm/dynasm.lua +2 -2
- data/lua-hooks/ext/luajit/etc/luajit.1 +1 -1
- data/lua-hooks/ext/luajit/etc/luajit.pc +1 -1
- data/lua-hooks/ext/luajit/src/Makefile +15 -11
- data/lua-hooks/ext/luajit/src/Makefile.dep +16 -16
- data/lua-hooks/ext/luajit/src/host/buildvm.c +2 -2
- data/lua-hooks/ext/luajit/src/host/buildvm.h +1 -1
- data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +9 -4
- data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +2 -2
- data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +1 -1
- data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +14 -3
- data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +27 -3
- data/lua-hooks/ext/luajit/src/host/genlibbc.lua +1 -1
- data/lua-hooks/ext/luajit/src/host/genminilua.lua +6 -5
- data/lua-hooks/ext/luajit/src/host/minilua.c +1 -1
- data/lua-hooks/ext/luajit/src/jit/bc.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/bcsave.lua +8 -8
- data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/dis_arm64.lua +1216 -0
- data/lua-hooks/ext/luajit/src/jit/dis_arm64be.lua +12 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +35 -20
- data/lua-hooks/ext/luajit/src/jit/dis_mips64.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mips64el.lua +17 -0
- data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +1 -1
- data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +7 -4
- data/lua-hooks/ext/luajit/src/jit/dump.lua +17 -12
- data/lua-hooks/ext/luajit/src/jit/p.lua +3 -2
- data/lua-hooks/ext/luajit/src/jit/v.lua +2 -2
- data/lua-hooks/ext/luajit/src/jit/zone.lua +1 -1
- data/lua-hooks/ext/luajit/src/lauxlib.h +14 -20
- data/lua-hooks/ext/luajit/src/lib_aux.c +38 -27
- data/lua-hooks/ext/luajit/src/lib_base.c +12 -5
- data/lua-hooks/ext/luajit/src/lib_bit.c +1 -1
- data/lua-hooks/ext/luajit/src/lib_debug.c +5 -5
- data/lua-hooks/ext/luajit/src/lib_ffi.c +2 -2
- data/lua-hooks/ext/luajit/src/lib_init.c +16 -16
- data/lua-hooks/ext/luajit/src/lib_io.c +6 -7
- data/lua-hooks/ext/luajit/src/lib_jit.c +14 -4
- data/lua-hooks/ext/luajit/src/lib_math.c +1 -5
- data/lua-hooks/ext/luajit/src/lib_os.c +1 -1
- data/lua-hooks/ext/luajit/src/lib_package.c +14 -23
- data/lua-hooks/ext/luajit/src/lib_string.c +1 -5
- data/lua-hooks/ext/luajit/src/lib_table.c +21 -1
- data/lua-hooks/ext/luajit/src/lj.supp +3 -3
- data/lua-hooks/ext/luajit/src/lj_alloc.c +174 -83
- data/lua-hooks/ext/luajit/src/lj_api.c +97 -18
- data/lua-hooks/ext/luajit/src/lj_arch.h +54 -22
- data/lua-hooks/ext/luajit/src/lj_asm.c +172 -53
- data/lua-hooks/ext/luajit/src/lj_asm.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_asm_arm.h +19 -16
- data/lua-hooks/ext/luajit/src/lj_asm_arm64.h +2022 -0
- data/lua-hooks/ext/luajit/src/lj_asm_mips.h +564 -158
- data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +19 -18
- data/lua-hooks/ext/luajit/src/lj_asm_x86.h +578 -92
- data/lua-hooks/ext/luajit/src/lj_bc.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_bc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcdump.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcread.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_bcwrite.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_buf.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_buf.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_carith.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_carith.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ccall.c +172 -7
- data/lua-hooks/ext/luajit/src/lj_ccall.h +21 -5
- data/lua-hooks/ext/luajit/src/lj_ccallback.c +71 -17
- data/lua-hooks/ext/luajit/src/lj_ccallback.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cconv.c +4 -2
- data/lua-hooks/ext/luajit/src/lj_cconv.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cdata.c +7 -5
- data/lua-hooks/ext/luajit/src/lj_cdata.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_clib.c +5 -5
- data/lua-hooks/ext/luajit/src/lj_clib.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_cparse.c +11 -6
- data/lua-hooks/ext/luajit/src/lj_cparse.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_crecord.c +70 -14
- data/lua-hooks/ext/luajit/src/lj_crecord.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ctype.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_ctype.h +8 -8
- data/lua-hooks/ext/luajit/src/lj_debug.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_debug.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_def.h +6 -9
- data/lua-hooks/ext/luajit/src/lj_dispatch.c +3 -3
- data/lua-hooks/ext/luajit/src/lj_dispatch.h +2 -1
- data/lua-hooks/ext/luajit/src/lj_emit_arm.h +5 -4
- data/lua-hooks/ext/luajit/src/lj_emit_arm64.h +419 -0
- data/lua-hooks/ext/luajit/src/lj_emit_mips.h +100 -20
- data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +4 -4
- data/lua-hooks/ext/luajit/src/lj_emit_x86.h +116 -25
- data/lua-hooks/ext/luajit/src/lj_err.c +34 -13
- data/lua-hooks/ext/luajit/src/lj_err.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_errmsg.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ff.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ffrecord.c +58 -49
- data/lua-hooks/ext/luajit/src/lj_ffrecord.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_frame.h +33 -6
- data/lua-hooks/ext/luajit/src/lj_func.c +4 -2
- data/lua-hooks/ext/luajit/src/lj_func.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_gc.c +16 -7
- data/lua-hooks/ext/luajit/src/lj_gc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_gdbjit.c +31 -1
- data/lua-hooks/ext/luajit/src/lj_gdbjit.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_ir.c +69 -96
- data/lua-hooks/ext/luajit/src/lj_ir.h +29 -18
- data/lua-hooks/ext/luajit/src/lj_ircall.h +24 -30
- data/lua-hooks/ext/luajit/src/lj_iropt.h +9 -9
- data/lua-hooks/ext/luajit/src/lj_jit.h +67 -9
- data/lua-hooks/ext/luajit/src/lj_lex.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_lex.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_lib.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_lib.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_load.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_mcode.c +11 -10
- data/lua-hooks/ext/luajit/src/lj_mcode.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_meta.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_meta.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_obj.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_obj.h +7 -3
- data/lua-hooks/ext/luajit/src/lj_opt_dce.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_opt_fold.c +84 -17
- data/lua-hooks/ext/luajit/src/lj_opt_loop.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_opt_mem.c +3 -3
- data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +24 -22
- data/lua-hooks/ext/luajit/src/lj_opt_sink.c +11 -6
- data/lua-hooks/ext/luajit/src/lj_opt_split.c +11 -2
- data/lua-hooks/ext/luajit/src/lj_parse.c +9 -7
- data/lua-hooks/ext/luajit/src/lj_parse.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_profile.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_profile.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_record.c +201 -117
- data/lua-hooks/ext/luajit/src/lj_record.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_snap.c +72 -26
- data/lua-hooks/ext/luajit/src/lj_snap.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_state.c +6 -6
- data/lua-hooks/ext/luajit/src/lj_state.h +2 -2
- data/lua-hooks/ext/luajit/src/lj_str.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_str.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_strfmt.c +7 -3
- data/lua-hooks/ext/luajit/src/lj_strfmt.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_strfmt_num.c +4 -3
- data/lua-hooks/ext/luajit/src/lj_strscan.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_strscan.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_tab.c +1 -2
- data/lua-hooks/ext/luajit/src/lj_tab.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target.h +3 -3
- data/lua-hooks/ext/luajit/src/lj_target_arm.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target_arm64.h +239 -7
- data/lua-hooks/ext/luajit/src/lj_target_mips.h +111 -22
- data/lua-hooks/ext/luajit/src/lj_target_ppc.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_target_x86.h +21 -4
- data/lua-hooks/ext/luajit/src/lj_trace.c +63 -18
- data/lua-hooks/ext/luajit/src/lj_trace.h +2 -1
- data/lua-hooks/ext/luajit/src/lj_traceerr.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_udata.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_udata.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_vm.h +5 -1
- data/lua-hooks/ext/luajit/src/lj_vmevent.c +1 -1
- data/lua-hooks/ext/luajit/src/lj_vmevent.h +1 -1
- data/lua-hooks/ext/luajit/src/lj_vmmath.c +1 -1
- data/lua-hooks/ext/luajit/src/ljamalg.c +1 -1
- data/lua-hooks/ext/luajit/src/lua.h +9 -1
- data/lua-hooks/ext/luajit/src/luaconf.h +3 -7
- data/lua-hooks/ext/luajit/src/luajit.c +69 -54
- data/lua-hooks/ext/luajit/src/luajit.h +4 -4
- data/lua-hooks/ext/luajit/src/lualib.h +1 -1
- data/lua-hooks/ext/luajit/src/msvcbuild.bat +12 -4
- data/lua-hooks/ext/luajit/src/vm_arm.dasc +1 -1
- data/lua-hooks/ext/luajit/src/vm_arm64.dasc +255 -32
- data/lua-hooks/ext/luajit/src/vm_mips.dasc +26 -23
- data/lua-hooks/ext/luajit/src/vm_mips64.dasc +5062 -0
- data/lua-hooks/ext/luajit/src/vm_ppc.dasc +1 -1
- data/lua-hooks/ext/luajit/src/vm_x64.dasc +24 -25
- data/lua-hooks/ext/luajit/src/vm_x86.dasc +77 -4
- data/lua-hooks/libluahooks.darwin.a +0 -0
- data/lua-hooks/libluahooks.linux.a +0 -0
- data/lua-hooks/options.mk +1 -1
- metadata +37 -77
- data/lua-hooks/ext/all.c +0 -69
- data/lua-hooks/ext/libinjection/COPYING +0 -37
- data/lua-hooks/ext/libinjection/libinjection.h +0 -65
- data/lua-hooks/ext/libinjection/libinjection_html5.c +0 -847
- data/lua-hooks/ext/libinjection/libinjection_html5.h +0 -54
- data/lua-hooks/ext/libinjection/libinjection_sqli.c +0 -2301
- data/lua-hooks/ext/libinjection/libinjection_sqli.h +0 -295
- data/lua-hooks/ext/libinjection/libinjection_sqli_data.h +0 -9349
- data/lua-hooks/ext/libinjection/libinjection_xss.c +0 -531
- data/lua-hooks/ext/libinjection/libinjection_xss.h +0 -21
- data/lua-hooks/ext/libinjection/lualib.c +0 -145
- data/lua-hooks/ext/libinjection/module.mk +0 -5
- data/lua-hooks/ext/lpeg/HISTORY +0 -96
- data/lua-hooks/ext/lpeg/lpcap.c +0 -537
- data/lua-hooks/ext/lpeg/lpcap.h +0 -56
- data/lua-hooks/ext/lpeg/lpcode.c +0 -1014
- data/lua-hooks/ext/lpeg/lpcode.h +0 -40
- data/lua-hooks/ext/lpeg/lpeg-128.gif +0 -0
- data/lua-hooks/ext/lpeg/lpeg.html +0 -1445
- data/lua-hooks/ext/lpeg/lpprint.c +0 -244
- data/lua-hooks/ext/lpeg/lpprint.h +0 -36
- data/lua-hooks/ext/lpeg/lptree.c +0 -1303
- data/lua-hooks/ext/lpeg/lptree.h +0 -82
- data/lua-hooks/ext/lpeg/lptypes.h +0 -149
- data/lua-hooks/ext/lpeg/lpvm.c +0 -364
- data/lua-hooks/ext/lpeg/lpvm.h +0 -58
- data/lua-hooks/ext/lpeg/makefile +0 -55
- data/lua-hooks/ext/lpeg/module.mk +0 -6
- data/lua-hooks/ext/lpeg/re.html +0 -498
- data/lua-hooks/ext/lua-cmsgpack/.gitignore +0 -13
- data/lua-hooks/ext/lua-cmsgpack/CMakeLists.txt +0 -45
- data/lua-hooks/ext/lua-cmsgpack/README.md +0 -115
- data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +0 -970
- data/lua-hooks/ext/lua-cmsgpack/module.mk +0 -2
- data/lua-hooks/ext/lua-cmsgpack/test.lua +0 -570
- data/lua-hooks/ext/lua-snapshot/LICENSE +0 -7
- data/lua-hooks/ext/lua-snapshot/Makefile +0 -12
- data/lua-hooks/ext/lua-snapshot/README.md +0 -18
- data/lua-hooks/ext/lua-snapshot/dump.lua +0 -15
- data/lua-hooks/ext/lua-snapshot/module.mk +0 -2
- data/lua-hooks/ext/lua-snapshot/snapshot.c +0 -462
- data/lua-hooks/ext/luautf8/README.md +0 -152
- data/lua-hooks/ext/luautf8/lutf8lib.c +0 -1274
- data/lua-hooks/ext/luautf8/module.mk +0 -2
- data/lua-hooks/ext/luautf8/unidata.h +0 -3064
- data/lua-hooks/ext/module.mk +0 -15
- data/lua-hooks/ext/modules.h +0 -17
- data/lua-hooks/ext/perf/luacpu.c +0 -114
- data/lua-hooks/ext/perf/lualoadavg.c +0 -40
- data/lua-hooks/ext/perf/luameminfo.c +0 -38
- data/lua-hooks/ext/perf/luaoslib.c +0 -203
- data/lua-hooks/ext/perf/module.mk +0 -5
- data/lua-hooks/ext/sha1/luasha1.c +0 -74
- data/lua-hooks/ext/sha1/module.mk +0 -5
- data/lua-hooks/ext/sha1/sha1.c +0 -145
- data/lua-hooks/ext/sha2/luasha256.c +0 -77
- data/lua-hooks/ext/sha2/module.mk +0 -5
- data/lua-hooks/ext/sha2/sha256.c +0 -196
- data/lua-hooks/ext/sysutils/lua_utils.c +0 -56
- data/lua-hooks/ext/sysutils/module.mk +0 -2
@@ -0,0 +1,45 @@
|
|
1
|
+
module Immunio
|
2
|
+
# Hook for the `ActionView::TemplateRenderer`. These are called for root
|
3
|
+
# templates.
|
4
|
+
module TemplateRendererHooks
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
Immunio::Utils.alias_method_chain self, :render_template, :immunio
|
9
|
+
end
|
10
|
+
|
11
|
+
def render_template_with_immunio(template, *args)
|
12
|
+
Request.time "plugin", "#{Module.nesting[0]}::#{__method__}" do
|
13
|
+
renderer = Template.new(template)
|
14
|
+
|
15
|
+
renderer.render @view do
|
16
|
+
Request.pause "plugin", "#{Module.nesting[0]}::#{__method__}" do
|
17
|
+
render_template_without_immunio(template, *args)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Hook for the `ActionView::Template`. These are called for non-root
|
25
|
+
# templates.
|
26
|
+
module TemplateHooks
|
27
|
+
extend ActiveSupport::Concern
|
28
|
+
|
29
|
+
included do
|
30
|
+
Immunio::Utils.alias_method_chain self, :render, :immunio
|
31
|
+
end
|
32
|
+
|
33
|
+
def render_with_immunio(context, *args, &block)
|
34
|
+
Request.time "plugin", "#{Module.nesting[0]}::#{__method__}" do
|
35
|
+
renderer = Template.new(self)
|
36
|
+
|
37
|
+
renderer.render context do
|
38
|
+
Request.pause "plugin", "#{Module.nesting[0]}::#{__method__}" do
|
39
|
+
render_without_immunio(context, *args, &block)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/immunio/plugins/io.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require_relative '../context'
|
2
2
|
|
3
|
+
begin
|
4
|
+
require 'open4'
|
5
|
+
rescue LoadError # rubocop:disable Lint/HandleExceptions
|
6
|
+
# Ignore
|
7
|
+
end
|
8
|
+
|
3
9
|
module Immunio
|
4
10
|
module IOHooks
|
5
11
|
|
@@ -64,6 +70,18 @@ module Immunio
|
|
64
70
|
end
|
65
71
|
Immunio.logger.debug { "IO: IOClassHooks created: #{IOClassHooks}" }
|
66
72
|
|
73
|
+
module ProcessClassHooks
|
74
|
+
IOHooks.inject self, "Process.", %w( spawn )
|
75
|
+
end
|
76
|
+
Immunio.logger.debug { "Shell: ProcessClassHooks created: #{ProcessClassHooks}" }
|
77
|
+
|
78
|
+
if defined? Open4
|
79
|
+
module Open4ClassHooks
|
80
|
+
IOHooks.inject self, "Open4.", %w( popen4 open4 )
|
81
|
+
end
|
82
|
+
Immunio.logger.debug { "Shell: Open4ClassHooks created: #{Open4ClassHooks}" }
|
83
|
+
end
|
84
|
+
|
67
85
|
module KernelModuleHooks
|
68
86
|
# exec() is not included currently as it replaces the running process
|
69
87
|
# and would never get primed correctly
|
@@ -107,6 +125,22 @@ Immunio::Plugin.load 'IO', feature: 'file_io', hooks: %w( file_io ) do |plugin|
|
|
107
125
|
plugin.loaded! RUBY_VERSION
|
108
126
|
end
|
109
127
|
|
128
|
+
#Add Process hooks if enabled
|
129
|
+
Immunio::Plugin.load 'Process', feature: 'shell_command', hooks: %w( shell_io ) do |plugin|
|
130
|
+
|
131
|
+
Process.extend Immunio::ProcessClassHooks
|
132
|
+
plugin.loaded! RUBY_VERSION
|
133
|
+
end
|
134
|
+
|
135
|
+
if defined? Open4
|
136
|
+
#Add Open4 hooks if enabled
|
137
|
+
Immunio::Plugin.load 'Open4', feature: 'shell_command', hooks: %w( shell_io ) do |plugin|
|
138
|
+
|
139
|
+
Open4.extend Immunio::Open4ClassHooks
|
140
|
+
plugin.loaded! Open4::VERSION
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
110
144
|
# Add Kernel hooks if enabled
|
111
145
|
Immunio::Plugin.load 'Kernel (shell_command)',
|
112
146
|
feature: 'shell_command',
|
data/lib/immunio/version.rb
CHANGED
data/lua-hooks/Makefile
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
MODULES := lib ext
|
2
2
|
|
3
|
+
include options.mk
|
4
|
+
|
3
5
|
# Source of extensions compiled w/ Lua's source.
|
4
6
|
# Only include .c files that can't be directly included in ext/all.c.
|
5
7
|
|
6
8
|
# All these source variables are filled in by the module.mk files
|
7
9
|
SRC :=
|
8
10
|
|
11
|
+
EXT_SRC :=
|
12
|
+
|
9
13
|
CXX_SRC :=
|
10
14
|
|
11
15
|
SPECIAL_SRC :=
|
@@ -26,6 +30,9 @@ include ext/module.mk
|
|
26
30
|
OBJ := \
|
27
31
|
$(patsubst %.c,%.o,$(filter %.c,$(SRC))) \
|
28
32
|
|
33
|
+
EXT_OBJ := \
|
34
|
+
$(patsubst %.c,%.o,$(filter %.c,$(EXT_SRC)))
|
35
|
+
|
29
36
|
SPECIAL_OBJ := \
|
30
37
|
$(patsubst %.c,%.o,$(filter %.c,$(SPECIAL_SRC))) \
|
31
38
|
|
@@ -43,8 +50,6 @@ CLI = ./lua
|
|
43
50
|
SO_OUT = libimmunio.so
|
44
51
|
A_OUT = libimmunio.a
|
45
52
|
|
46
|
-
include options.mk
|
47
|
-
|
48
53
|
INIT_HOOK = hooks/__init__.lua
|
49
54
|
INIT_NOPROTECT_HOOK = hooks/__init__noprotect.lua
|
50
55
|
HOOK_SRCS := $(wildcard hooks/*.lua) hooks/__init__.lua hooks/__init__noprotect.lua
|
@@ -55,13 +60,19 @@ HOOKS_SRCS_TARBALL = hooks_srcs.tgz
|
|
55
60
|
LUAJIT_OUT = libluajit.a
|
56
61
|
LUAJIT_OBJ = ext/luajit/src/${LUAJIT_OUT}
|
57
62
|
|
63
|
+
GSP_OUT = libgspcore.a
|
64
|
+
GSP_OBJ = ext/lua-sqlparser/general_sql_parser/lib/${GSP_OUT}
|
65
|
+
GSP_COLLECTION_OUT = libgspcollection.a
|
66
|
+
GSP_COLLECTION_OBJ = ext/lua-sqlparser/general_sql_parser/lib/${GSP_COLLECTION_OUT}
|
67
|
+
|
68
|
+
|
58
69
|
# Build lua, run tests, and create hooks archive
|
59
70
|
all: ${CLI} ${INIT_HOOK} ${INIT_NOPROTECT_HOOK} ${HOOKS_TARBALL} ${HOOKS_SRCS_TARBALL}
|
60
71
|
|
61
|
-
${SO_OUT}: ${OBJ} ${SPECIAL_OBJ} ${LUAJIT_OBJ}
|
72
|
+
${SO_OUT}: ${OBJ} ${EXT_OBJ} ${SPECIAL_OBJ} ${LUAJIT_OBJ}
|
62
73
|
${CC} -shared ${CFLAGS} ${LIBS} -o $@ -lc $^
|
63
74
|
|
64
|
-
${A_OUT}: ${OBJ} ${SPECIAL_OBJ}
|
75
|
+
${A_OUT}: ${OBJ} ${EXT_OBJ} ${SPECIAL_OBJ}
|
65
76
|
${AR} -rcus $@ $^
|
66
77
|
|
67
78
|
${LUAJIT_OUT}: ${LUAJIT_OBJ}
|
@@ -74,13 +85,26 @@ else
|
|
74
85
|
cd ext/luajit/src && make XCFLAGS="${LUAJIT_XCFLAGS}" ${LUAJIT_OUT}
|
75
86
|
endif
|
76
87
|
|
88
|
+
${GSP_OUT}: ${GSP_OBJ}
|
89
|
+
cp $^ $@
|
90
|
+
|
91
|
+
${GSP_OBJ}:
|
92
|
+
cd ext/lua-sqlparser/general_sql_parser && make
|
93
|
+
|
94
|
+
${GSP_COLLECTION_OUT}: ${GSP_COLLECTION_OBJ}
|
95
|
+
cp $^ $@
|
96
|
+
|
97
|
+
${GSP_COLLECTION_OBJ}:
|
98
|
+
cd ext/lua-sqlparser/general_sql_parser && make
|
99
|
+
|
77
100
|
# Build lua executable for testing and compilation
|
78
101
|
# Seperate compilation as we need the LUA_UNSAFE_MODE flag set...
|
79
102
|
${CLI}: CFLAGS += ${UNSAFE_FLAG}
|
80
103
|
${CLI}: CXXFLAGS += ${UNSAFE_FLAG}
|
81
|
-
${CLI}: ${CLI_SRC} ${SRC} ${SPECIAL_OBJ} ${CXX_OBJ} ${LUAJIT_OBJ}
|
104
|
+
${CLI}: ${CLI_SRC} ${SRC} ${EXT_OBJ} ${SPECIAL_OBJ} ${CXX_OBJ} ${LUAJIT_OBJ} ${GSP_OBJ} ${GSP_COLLECTION_OBJ}
|
82
105
|
${CC} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LIBS}
|
83
106
|
|
107
|
+
|
84
108
|
# Concatenate init hooks into one __init__.lua
|
85
109
|
${INIT_NOPROTECT_HOOK}: ${LUA_BASE_SRC} ${CLI}
|
86
110
|
rm -f hooks/__init__noprotect.lua
|
@@ -100,11 +124,13 @@ ${HOOKS_TARBALL}: ${MIN_SRCS}
|
|
100
124
|
tar -czf $@ -C build .
|
101
125
|
|
102
126
|
${HOOKS_SRCS_TARBALL}: ${HOOK_SRCS}
|
103
|
-
tar -czf $@ -C hooks .
|
127
|
+
tar -czf $@ --exclude "init" -C hooks .
|
104
128
|
|
105
|
-
${SPECIAL_OBJ}: CFLAGS += ${OPTIMIZE_NONE}
|
129
|
+
${SPECIAL_OBJ}: CFLAGS += ${OPTIMIZE_NONE} -Wall
|
106
130
|
|
107
|
-
|
131
|
+
# XXX cast warning disabled for antiSqlInjection.c code written for 32 bit that's using void * as a wildcard type.
|
132
|
+
${EXT_OBJ}: CFLAGS += -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
|
133
|
+
${CLI_OBJ} ${OBJ} ${CXX_OBJ} ${LUAJIT_OBJ}: CFLAGS += ${OPTIMIZE_FULL} -Wall
|
108
134
|
|
109
135
|
%.o: %.c
|
110
136
|
${CC} ${CFLAGS} -c ${INCS} -o $@ $<
|
@@ -118,8 +144,9 @@ cleanhooks:
|
|
118
144
|
rm -f build/*.lua
|
119
145
|
|
120
146
|
clean: cleanhooks
|
121
|
-
rm -f ${CLI} ${CLI_OBJ} ${OBJ} ${CXX_OBJ} ${SPECIAL_OBJ} ${SO_OUT} ${A_OUT} ${LUAJIT_OUT}
|
147
|
+
rm -f ${CLI} ${CLI_OBJ} ${OBJ} ${CXX_OBJ} ${EXT_OBJ} ${SPECIAL_OBJ} ${SO_OUT} ${A_OUT} ${LUAJIT_OUT} ${GSP_OBJ}
|
122
148
|
cd ext/luajit && make clean
|
149
|
+
cd ext/lua-sqlparser/general_sql_parser && make clean
|
123
150
|
rm -f test_failed
|
124
151
|
rm -rf build
|
125
152
|
find . -name \*.o -delete
|
@@ -1,7 +1,7 @@
|
|
1
1
|
===============================================================================
|
2
2
|
LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/
|
3
3
|
|
4
|
-
Copyright (C) 2005-
|
4
|
+
Copyright (C) 2005-2017 Mike Pall. All rights reserved.
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -10,13 +10,13 @@
|
|
10
10
|
# For MSVC, please follow the instructions given in src/msvcbuild.bat.
|
11
11
|
# For MinGW and Cygwin, cd to src and run make with the Makefile there.
|
12
12
|
#
|
13
|
-
# Copyright (C) 2005-
|
13
|
+
# Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h
|
14
14
|
##############################################################################
|
15
15
|
|
16
16
|
MAJVER= 2
|
17
17
|
MINVER= 1
|
18
18
|
RELVER= 0
|
19
|
-
PREREL= -
|
19
|
+
PREREL= -beta3
|
20
20
|
VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL)
|
21
21
|
ABIVER= 5.1
|
22
22
|
|
@@ -47,17 +47,18 @@ INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
|
|
47
47
|
INSTALL_TNAME= luajit-$(VERSION)
|
48
48
|
INSTALL_TSYMNAME= luajit
|
49
49
|
INSTALL_ANAME= libluajit-$(ABIVER).a
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
INSTALL_SOSHORT1= libluajit-$(ABIVER).so
|
51
|
+
INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER)
|
52
|
+
INSTALL_SONAME= $(INSTALL_SOSHORT2).$(MINVER).$(RELVER)
|
53
53
|
INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib
|
54
54
|
INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib
|
55
|
+
INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib
|
55
56
|
INSTALL_PCNAME= luajit.pc
|
56
57
|
|
57
58
|
INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
|
58
59
|
INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
|
59
|
-
INSTALL_SHORT1= $(INSTALL_LIB)/$(
|
60
|
-
INSTALL_SHORT2= $(INSTALL_LIB)/$(
|
60
|
+
INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1)
|
61
|
+
INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2)
|
61
62
|
INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
|
62
63
|
INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
|
63
64
|
INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
|
@@ -85,16 +86,22 @@ FILE_MAN= luajit.1
|
|
85
86
|
FILE_PC= luajit.pc
|
86
87
|
FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
|
87
88
|
FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \
|
88
|
-
dis_x86.lua dis_x64.lua dis_arm.lua
|
89
|
-
dis_mips.lua dis_mipsel.lua
|
89
|
+
dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \
|
90
|
+
dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua \
|
91
|
+
dis_mips64.lua dis_mips64el.lua vmdef.lua
|
90
92
|
|
91
93
|
ifeq (,$(findstring Windows,$(OS)))
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
94
|
+
HOST_SYS:= $(shell uname -s)
|
95
|
+
else
|
96
|
+
HOST_SYS= Windows
|
97
|
+
endif
|
98
|
+
TARGET_SYS?= $(HOST_SYS)
|
99
|
+
|
100
|
+
ifeq (Darwin,$(TARGET_SYS))
|
101
|
+
INSTALL_SONAME= $(INSTALL_DYLIBNAME)
|
102
|
+
INSTALL_SOSHORT1= $(INSTALL_DYLIBSHORT1)
|
103
|
+
INSTALL_SOSHORT2= $(INSTALL_DYLIBSHORT2)
|
104
|
+
LDCONFIG= :
|
98
105
|
endif
|
99
106
|
|
100
107
|
##############################################################################
|
data/lua-hooks/ext/luajit/README
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
README for LuaJIT 2.1.0-
|
1
|
+
README for LuaJIT 2.1.0-beta3
|
2
2
|
-----------------------------
|
3
3
|
|
4
4
|
LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
|
5
5
|
|
6
6
|
Project Homepage: http://luajit.org/
|
7
7
|
|
8
|
-
LuaJIT is Copyright (C) 2005-
|
8
|
+
LuaJIT is Copyright (C) 2005-2017 Mike Pall.
|
9
9
|
LuaJIT is free software, released under the MIT license.
|
10
10
|
See full Copyright Notice in the COPYRIGHT file or in luajit.h.
|
11
11
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>LuaJIT Change History</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6
6
|
<meta name="Author" content="Mike Pall">
|
7
|
-
<meta name="Copyright" content="Copyright (C) 2005-
|
7
|
+
<meta name="Copyright" content="Copyright (C) 2005-2017, Mike Pall">
|
8
8
|
<meta name="Language" content="en">
|
9
9
|
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
10
10
|
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
@@ -65,7 +65,7 @@ div.major { max-width: 600px; padding: 1em; margin: 1em 0 1em 0; }
|
|
65
65
|
<div id="main">
|
66
66
|
<p>
|
67
67
|
This is a list of changes between the released versions of LuaJIT.<br>
|
68
|
-
The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT 2.0.
|
68
|
+
The current <span style="color: #0000c0;">stable version</span> is <strong>LuaJIT 2.0.5</strong>.<br>
|
69
69
|
</p>
|
70
70
|
<p>
|
71
71
|
Please check the
|
@@ -74,6 +74,30 @@ to see whether newer versions are available.
|
|
74
74
|
</p>
|
75
75
|
|
76
76
|
<div class="major" style="background: #d0d0ff;">
|
77
|
+
<h2 id="LuaJIT-2.1.0-beta3">LuaJIT 2.1.0-beta3 — 2017-05-01</h2>
|
78
|
+
<ul>
|
79
|
+
<li>Rewrite memory block allocator.</li>
|
80
|
+
<li>Add various extension from Lua 5.2/5.3.</li>
|
81
|
+
<li>Remove old Lua 5.0 compatibility defines.</li>
|
82
|
+
<li>Set arg table before evaluating <tt>LUA_INIT</tt> and <tt>-e</tt> chunks.</li>
|
83
|
+
<li>Fix FOLD rules for <tt>math.abs()</tt> and FP negation.</li>
|
84
|
+
<li>Fix soft-float <tt>math.abs()</tt> and negation.</li>
|
85
|
+
<li>Fix formatting of some small denormals at low precision.</li>
|
86
|
+
<li>LJ_GC64: Add JIT compiler support.</li>
|
87
|
+
<li>x64/LJ_GC64: Add JIT compiler backend.</li>
|
88
|
+
<li>x86/x64: Generate BMI2 shifts and rotates, if available.</li>
|
89
|
+
<li>Windows/x86: Add full exception interoperability.</li>
|
90
|
+
<li>ARM64: Add big-endian support.</li>
|
91
|
+
<li>ARM64: Add JIT compiler backend.</li>
|
92
|
+
<li>MIPS: Fix <tt>TSETR</tt> barrier.</li>
|
93
|
+
<li>MIPS: Support MIPS16 interlinking.</li>
|
94
|
+
<li>MIPS soft-float: Fix code generation for <tt>HREF</tt>.</li>
|
95
|
+
<li>MIPS64: Add MIPS64 hard-float JIT compiler backend.</li>
|
96
|
+
<li>MIPS64: Add MIPS64 hard-float/soft-float support to interpreter.</li>
|
97
|
+
<li>FFI: Compile bitfield loads/stores.</li>
|
98
|
+
<li>Various fixes common with the 2.0 branch.</li>
|
99
|
+
</ul>
|
100
|
+
|
77
101
|
<h2 id="LuaJIT-2.1.0-beta2">LuaJIT 2.1.0-beta2 — 2016-03-03</h2>
|
78
102
|
<ul>
|
79
103
|
<li>Enable trace stitching.</li>
|
@@ -140,6 +164,48 @@ Please take a look at the commit history for more details.
|
|
140
164
|
</div>
|
141
165
|
|
142
166
|
<div class="major" style="background: #ffffd0;">
|
167
|
+
<h2 id="LuaJIT-2.0.5">LuaJIT 2.0.5 — 2017-05-01</h2>
|
168
|
+
<ul>
|
169
|
+
<li>Add workaround for MSVC 2015 stdio changes.</li>
|
170
|
+
<li>Limit mcode alloc probing, depending on the available pool size.</li>
|
171
|
+
<li>Fix overly restrictive range calculation in mcode allocation.</li>
|
172
|
+
<li>Fix out-of-scope goto handling in parser.</li>
|
173
|
+
<li>Remove internal <tt>__mode = "K"</tt> and replace with safe check.</li>
|
174
|
+
<li>Add "proto" field to <tt>jit.util.funcinfo()</tt>.</li>
|
175
|
+
<li>Fix GC step size calculation.</li>
|
176
|
+
<li>Initialize <tt>uv->immutable</tt> for upvalues of loaded chunks.</li>
|
177
|
+
<li>Fix for cdata vs. non-cdata arithmetics/comparisons.</li>
|
178
|
+
<li>Drop leftover regs in 'for' iterator assignment, too.</li>
|
179
|
+
<li>Fix PHI remarking in SINK pass.</li>
|
180
|
+
<li>Don't try to record outermost <tt>pcall()</tt> return to lower frame.</li>
|
181
|
+
<li>Add guard for obscure aliasing between open upvalues and SSA slots.</li>
|
182
|
+
<li>Remove assumption that <tt>lj_math_random_step()</tt> doesn't clobber FPRs.</li>
|
183
|
+
<li>Fix handling of non-numeric strings in arithmetic coercions.</li>
|
184
|
+
<li>Fix recording of <tt>select(n, ...)</tt> with off-trace varargs</li>
|
185
|
+
<li>Fix install for cross-builds.</li>
|
186
|
+
<li>Don't allocate unused 2nd result register in JIT compiler backend.</li>
|
187
|
+
<li>Drop marks from replayed instructions when sinking.</li>
|
188
|
+
<li>Fix unsinking check.</li>
|
189
|
+
<li>Properly handle OOM in <tt>trace_save()</tt>.</li>
|
190
|
+
<li>Limit number of arguments given to <tt>io.lines()</tt> and <tt>fp:lines()</tt>.</li>
|
191
|
+
<li>Fix narrowing of <tt>TOBIT</tt>.</li>
|
192
|
+
<li>OSX: Fix build with recent XCode.</li>
|
193
|
+
<li>x86/x64: Don't spill an explicit <tt>REF_BASE</tt> in the IR.</li>
|
194
|
+
<li>x86/x64: Fix instruction length decoder.</li>
|
195
|
+
<li>x86/x64: Search for exit jumps with instruction length decoder.</li>
|
196
|
+
<li>ARM: Fix <tt>BLX</tt> encoding for Thumb interworking calls.</li>
|
197
|
+
<li>MIPS: Don't use <tt>RID_GP</tt> as a scratch register.</li>
|
198
|
+
<li>MIPS: Fix emitted code for U32 to float conversion.</li>
|
199
|
+
<li>MIPS: Backport workaround for compact unwind tables.</li>
|
200
|
+
<li>MIPS: Fix cross-endian jit.bcsave.</li>
|
201
|
+
<li>MIPS: Fix <tt>BC_ISNEXT</tt> fallback path.</li>
|
202
|
+
<li>MIPS: Fix use of ffgccheck delay slots in interpreter.</li>
|
203
|
+
<li>FFI: Fix FOLD rules for <tt>int64_t</tt> comparisons.</li>
|
204
|
+
<li>FFI: Fix SPLIT pass for <tt>CONV i64.u64</tt>.</li>
|
205
|
+
<li>FFI: Fix <tt>ipairs()</tt> recording.</li>
|
206
|
+
<li>FFI: Don't propagate qualifiers into subtypes of complex.</li>
|
207
|
+
</ul>
|
208
|
+
|
143
209
|
<h2 id="LuaJIT-2.0.4">LuaJIT 2.0.4 — 2015-05-14</h2>
|
144
210
|
<ul>
|
145
211
|
<li>Fix stack check in narrowing optimization.</li>
|
@@ -807,7 +873,7 @@ no point in listing differences over earlier versions.</li>
|
|
807
873
|
</div>
|
808
874
|
<div id="foot">
|
809
875
|
<hr class="hide">
|
810
|
-
Copyright © 2005-
|
876
|
+
Copyright © 2005-2017 Mike Pall
|
811
877
|
<span class="noprint">
|
812
878
|
·
|
813
879
|
<a href="contact.html">Contact</a>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title>Contact</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6
6
|
<meta name="Author" content="Mike Pall">
|
7
|
-
<meta name="Copyright" content="Copyright (C) 2005-
|
7
|
+
<meta name="Copyright" content="Copyright (C) 2005-2017, Mike Pall">
|
8
8
|
<meta name="Language" content="en">
|
9
9
|
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
10
10
|
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
@@ -61,8 +61,15 @@
|
|
61
61
|
</div>
|
62
62
|
<div id="main">
|
63
63
|
<p>
|
64
|
+
If you want to report bugs, propose fixes or suggest enhancements,
|
65
|
+
please use the
|
66
|
+
<a href="https://github.com/LuaJIT/LuaJIT/issues">GitHub issue tracker</a>.
|
67
|
+
</p>
|
68
|
+
<p>
|
64
69
|
Please send general questions to the
|
65
70
|
<a href="http://luajit.org/list.html"><span class="ext">»</span> LuaJIT mailing list</a>.
|
71
|
+
</p>
|
72
|
+
<p>
|
66
73
|
You can also send any questions you have directly to me:
|
67
74
|
</p>
|
68
75
|
|
@@ -86,7 +93,7 @@ xD("fyZKB8xv\"FJytmz8.KAB0u52D")
|
|
86
93
|
<h2>Copyright</h2>
|
87
94
|
<p>
|
88
95
|
All documentation is
|
89
|
-
Copyright © 2005-
|
96
|
+
Copyright © 2005-2017 Mike Pall.
|
90
97
|
</p>
|
91
98
|
|
92
99
|
|
@@ -94,7 +101,7 @@ Copyright © 2005-2016 Mike Pall.
|
|
94
101
|
</div>
|
95
102
|
<div id="foot">
|
96
103
|
<hr class="hide">
|
97
|
-
Copyright © 2005-
|
104
|
+
Copyright © 2005-2017 Mike Pall
|
98
105
|
<span class="noprint">
|
99
106
|
·
|
100
107
|
<a href="contact.html">Contact</a>
|