immunio 1.2.1 → 2.0.2
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/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>
|