From: Thierry FOURNIER Date: Mon, 24 Aug 2015 15:23:45 +0000 (+0200) Subject: BUG/MEDIUM: lua: the lua fucntion Channel:close() causes a segfault X-Git-Tag: v1.6-dev4~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10ec214f41385b231a0c4c529b7b555caf5280bb;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: lua: the lua fucntion Channel:close() causes a segfault The function dont remove remaineing analysers and dont update response channel timeout. The fix is a copy of the behavior of the functions http_apply_redirect_rule() and stream_int_retnclose(). --- diff --git a/src/hlua.c b/src/hlua.c index abfb2b5741..84aee63307 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -3621,13 +3621,17 @@ __LJMP static int hlua_txn_close(lua_State *L) ic = &htxn->s->req; oc = &htxn->s->res; + channel_auto_read(ic); channel_abort(ic); channel_auto_close(ic); channel_erase(ic); + + oc->wex = tick_add_ifset(now_ms, oc->wto); channel_auto_read(oc); channel_auto_close(oc); channel_shutr_now(oc); + htxn->s->txn->req.chn->analysers = 0; return 0; }