[Tarantool-patches] [PATCH v1 1/1] netbox: fix memleak in lbox_tuple_format_new()

imeevma at tarantool.org imeevma at tarantool.org
Wed Oct 30 13:58:45 MSK 2019


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



More information about the Tarantool-patches mailing list