From 8c0dd0ebbedd93cc476d7dd3fbffc4a6d75c7439 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 3 May 2016 08:27:33 +0200 Subject: [letterspace] fix double free with disc components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adress issue #350 For some reason our stack copy of the current node gets double-freed. Since the “components” field will probably vanish soon, we can get by for now by skipping the explicit free. --- src/luaotfload-letterspace.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/luaotfload-letterspace.lua b/src/luaotfload-letterspace.lua index 40b3015..21a9136 100644 --- a/src/luaotfload-letterspace.lua +++ b/src/luaotfload-letterspace.lua @@ -28,9 +28,6 @@ local setfield = nodedirect.setfield local field_setter = function (name) return function (n, ...) setfield (n, name, ...) end end local field_getter = function (name) return function (n, ...) getfield (n, name, ...) end end ---- As of December 2014 the faster ``node.direct.*`` interface is ---- preferred. - local getfont = nodedirect.getfont local getid = nodedirect.getid @@ -351,7 +348,7 @@ kerncharacters = function (head) end start = c setfield(s, "components", nil) - free_node(s) + --free_node(s) --> double free with multipart components c = getfield (start, "components") end end -- cgit v1.2.3