From: Vsevolod Stakhov Date: Thu, 4 Oct 2018 16:21:16 +0000 (+0100) Subject: [Minor] Prevent race condition in Redis ctx refcounting X-Git-Tag: 1.8.1~91 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=315ecdf30dfefa0316b608cc37d867795499419e;p=thirdparty%2Frspamd.git [Minor] Prevent race condition in Redis ctx refcounting --- diff --git a/src/lua/lua_redis.c b/src/lua/lua_redis.c index d3eaa300a2..5b2ba00624 100644 --- a/src/lua/lua_redis.c +++ b/src/lua/lua_redis.c @@ -480,6 +480,8 @@ lua_redis_push_results (struct lua_redis_ctx *ctx, lua_State *L) static void lua_redis_cleanup_events (struct lua_redis_ctx *ctx) { + REDIS_RETAIN (ctx); /* To avoid preliminary destruction */ + while (!g_queue_is_empty (ctx->events_cleanup)) { struct lua_redis_result *result = g_queue_pop_head (ctx->events_cleanup); @@ -488,6 +490,8 @@ lua_redis_cleanup_events (struct lua_redis_ctx *ctx) g_free (result); } + + REDIS_RELEASE (ctx); } /**