aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikhail Galanin <mgalanin@mimecast.com>2018-09-18 10:20:28 +0100
committerMikhail Galanin <mgalanin@mimecast.com>2018-09-18 10:20:28 +0100
commit8b26fafde4f09ada6deec0a550e1bb955e6afe16 (patch)
tree4d7c9692f6e26013b3afd362977136c6367a0f1a
parent5b571379f3a2493f53eabd331da42ddcdcce4921 (diff)
downloadrspamd-8b26fafde4f09ada6deec0a550e1bb955e6afe16.tar.gz
rspamd-8b26fafde4f09ada6deec0a550e1bb955e6afe16.zip
[Minor] Fixed error reported by ASAN: do not try usins already pop-ed watcher
The watcher is pop-ed once session is over but reference to the structure remains in Lua and then being removed from lua dtor. In this case we try to pop it second time. Bad.
-rw-r--r--src/lua/lua_tcp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lua/lua_tcp.c b/src/lua/lua_tcp.c
index b5b6eba5f..91cf3726d 100644
--- a/src/lua/lua_tcp.c
+++ b/src/lua/lua_tcp.c
@@ -485,6 +485,7 @@ lua_tcp_maybe_free (struct lua_tcp_cbdata *cbd)
if (cbd->w) {
rspamd_session_watcher_pop (cbd->session, cbd->w);
}
+ cbd->w = NULL;
if (cbd->async_ev) {
rspamd_session_remove_event (cbd->session, lua_tcp_void_finalyser, cbd);
@@ -496,6 +497,7 @@ lua_tcp_maybe_free (struct lua_tcp_cbdata *cbd)
if (cbd->w) {
rspamd_session_watcher_pop (cbd->session, cbd->w);
}
+ cbd->w = NULL;
if (cbd->async_ev) {
rspamd_session_remove_event (cbd->session, lua_tcp_fin, cbd);