# commit f874a83
# BUG/MINOR: lua: Segfaults with wrong usage of types.
#
# Patrick reported that this simple configuration made haproxy segfaults:
#
#     global
#         lua-load /tmp/haproxy.lua
#
#     frontend f1
#         mode http
#         bind :8000
#         default_backend b1
#
#         http-request lua.foo
#
#     backend b1
#         mode http
#         server s1 127.0.0.1:8080
#
# with this '/tmp/haproxy.lua' script:
#
#     core.register_action("foo", { "http-req" }, function(txn)
#         txn.sc:ipmask(txn.f:src(), 24, 112)
#     end)
#
# This is due to missing initialization of the array of arguments
# passed to hlua_lua2arg_check() which makes it enter code with
# corrupted arguments.
#
# Thanks a lot to Patrick Hemmer for having reported this issue.


varnishtest "Basic LUA test h00000"
#REQUIRE_OPTIONS=LUA
#REGTEST_TYPE=bug

feature ignore_unknown_macro

server s1 -repeat 2 {
    rxreq
    txresp
} -start

haproxy h1 -conf {
    global
        lua-load ${testdir}/wrong_types_usage.lua

    frontend fe1
        mode http
        ${no-htx} option http-use-htx
        bind "fd@${fe1}"
        default_backend b1

        http-request lua.foo

    backend b1
        mode http
        ${no-htx} option http-use-htx
        server s1 ${s1_addr}:${s1_port}

} -start

client c0 -connect ${h1_fe1_sock} {
    txreq -url "/foo"
    rxresp
    expect resp.status == 200
}

client c1 -connect ${h1_fe1_sock} {
    txreq -url "/foo"
    rxresp
    expect resp.status == 200
}

client c0 -start
client c1 -start

client c0 -wait
client c1 -wait
