From 9c4aae2141161e4bf69313a771db91c0acc4cc83 Mon Sep 17 00:00:00 2001 From: Rami Ylimäki Date: Wed, 30 Mar 2011 16:47:31 +0300 Subject: xkb: Prevent leaking of XKB geometry information on copy. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently shapes, sections and doodads may leak on copy. Reviewed-by: Peter Hutterer Reviewed-by: Erkki Seppälä Signed-off-by: Rami Ylimäki Signed-off-by: Peter Hutterer --- xkb/xkbUtils.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'xkb') diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index a80a8d8fd..cc9aaa75a 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -1541,10 +1541,10 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) } if (src->geom->num_shapes) { - tmp = calloc(src->geom->num_shapes, sizeof(XkbShapeRec)); - if (!tmp) + /* Reallocate and clear all items. */ + if (!XkbGeomRealloc((void **)&dst->geom->shapes, dst->geom->sz_shapes, src->geom->num_shapes, + sizeof(XkbShapeRec), XKB_GEOM_CLEAR_ALL)) return FALSE; - dst->geom->shapes = tmp; for (i = 0, sshape = src->geom->shapes, dshape = dst->geom->shapes; i < src->geom->num_shapes; @@ -1661,7 +1661,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) } dst->geom->num_sections = 0; - dst->geom->sections = NULL; } if (src->geom->num_sections) { @@ -1771,7 +1770,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) } } dst->geom->num_doodads = 0; - dst->geom->doodads = NULL; } if (src->geom->num_doodads) { -- cgit v1.2.3