From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 2C6C843D679 for ; Wed, 30 Oct 2019 13:58:47 +0300 (MSK) From: imeevma@tarantool.org Date: Wed, 30 Oct 2019 13:58:45 +0300 Message-Id: <71d3e28eadd9ca54d5f564ed25d4276d472d5e6d.1572432961.git.imeevma@gmail.com> Subject: [Tarantool-patches] [PATCH v1 1/1] netbox: fix memleak in lbox_tuple_format_new() List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: v.shpilevoy@tarantool.org Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org Memleak appeared due to the fact that when creating a dictionary its reference count is 1 from the beginning. Later, when the dictionary is used to create tuple_format, its reference counter increased by 1 and it became equal to 2. After removing tuple_format, the reference counter for dict decreased by one, so it became equal to 1. Since ref counter is not equal to 0, dict not deleted, causing a memory leak. Closes #4588 --- src/box/lua/misc.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/box/lua/misc.cc b/src/box/lua/misc.cc index 7b8b9dc..102194e 100644 --- a/src/box/lua/misc.cc +++ b/src/box/lua/misc.cc @@ -233,6 +233,7 @@ lbox_tuple_format_new(struct lua_State *L) NULL, 0, 0, dict, false, false); if (format == NULL) return luaT_error(L); + tuple_dictionary_unref(dict); return lbox_push_tuple_format(L, format); } -- 2.7.4