mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-14 01:30:54 +00:00
BUG/MINOR: hlua: improper lock usage in hlua_filter_new()
In hlua_filter_new(), after each hlua resume, we systematically try to empty the stack by calling lua_settop(). However we're doing this without locking the lua context, so it is unsafe in multithreading context if the script is loaded using 'lua-load'. To fix the issue, we protect the call with hlua_{lock,unlock}() helpers. This should be backported up to 2.6.
This commit is contained in:
parent
51f291c795
commit
d81c2205a3
@ -11956,8 +11956,11 @@ static int hlua_filter_new(struct stream *s, struct filter *filter)
|
||||
}
|
||||
|
||||
end:
|
||||
if (s->hlua)
|
||||
if (s->hlua) {
|
||||
hlua_lock(s->hlua);
|
||||
lua_settop(s->hlua->T, 0);
|
||||
hlua_unlock(s->hlua);
|
||||
}
|
||||
if (ret <= 0) {
|
||||
if (flt_ctx) {
|
||||
hlua_ctx_destroy(flt_ctx->hlua[0]);
|
||||
|
Loading…
Reference in New Issue
Block a user