summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Gesang <phg@phi-gamma.net>2016-05-03 08:27:33 +0200
committerPhilipp Gesang <phg@phi-gamma.net>2016-05-03 08:27:36 +0200
commit8c0dd0ebbedd93cc476d7dd3fbffc4a6d75c7439 (patch)
tree35e67b54edeb3398212b0e2178ac0063638fe1bf
parent664b28e1a6e6ded4240f05b329f754f0144d3f71 (diff)
downloadluaotfload-8c0dd0ebbedd93cc476d7dd3fbffc4a6d75c7439.tar.gz
[letterspace] fix double free with disc components
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.
-rw-r--r--src/luaotfload-letterspace.lua5
1 files changed, 1 insertions, 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