[PATCH xserver 2/2] xkb: Prevent leaking of XKB geometry information on copy.

2011-03-17 Thread Rami Ylimäki
Currently shapes, sections and doodads may leak on copy.

Reviewed-by: Erkki Seppälä erkki.sepp...@vincit.fi
Signed-off-by: Rami Ylimäki rami.ylim...@vincit.fi
---
 xkb/xkbUtils.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index f4c8a6e..e7681de 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1577,7 +1577,9 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
 }
 
 if (src-geom-num_shapes) {
-tmp = calloc(src-geom-num_shapes, sizeof(XkbShapeRec));
+/* Reallocate and clear all items. */
+tmp = _XkbGeomRealloc(dst-geom-shapes, dst-geom-sz_shapes, 
src-geom-num_shapes,
+  0, src-geom-num_shapes, 
sizeof(XkbShapeRec));
 if (!tmp)
 return FALSE;
 dst-geom-shapes = tmp;
@@ -1697,7 +1699,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
 }
 
 dst-geom-num_sections = 0;
-dst-geom-sections = NULL;
 }
 
 if (src-geom-num_sections) {
@@ -1809,7 +1810,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
 }
 }
 dst-geom-num_doodads = 0;
-dst-geom-doodads = NULL;
 }
 
 if (src-geom-num_doodads) {
-- 
1.6.3.3

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH xserver 2/2] xkb: Prevent leaking of XKB geometry information on copy.

2011-03-17 Thread Peter Hutterer
On Thu, Mar 17, 2011 at 10:40:01AM +0200, Rami Ylimäki wrote:
 Currently shapes, sections and doodads may leak on copy.
 
 Reviewed-by: Erkki Seppälä erkki.sepp...@vincit.fi
 Signed-off-by: Rami Ylimäki rami.ylim...@vincit.fi

Reviewed-by: Peter Hutterer peter.hutte...@who-t.net


 ---
  xkb/xkbUtils.c |6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
 index f4c8a6e..e7681de 100644
 --- a/xkb/xkbUtils.c
 +++ b/xkb/xkbUtils.c
 @@ -1577,7 +1577,9 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
  }
  
  if (src-geom-num_shapes) {
 -tmp = calloc(src-geom-num_shapes, sizeof(XkbShapeRec));
 +/* Reallocate and clear all items. */
 +tmp = _XkbGeomRealloc(dst-geom-shapes, dst-geom-sz_shapes, 
 src-geom-num_shapes,
 +  0, src-geom-num_shapes, 
 sizeof(XkbShapeRec));
  if (!tmp)
  return FALSE;
  dst-geom-shapes = tmp;
 @@ -1697,7 +1699,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
  }
  
  dst-geom-num_sections = 0;
 -dst-geom-sections = NULL;
  }
  
  if (src-geom-num_sections) {
 @@ -1809,7 +1810,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
  }
  }
  dst-geom-num_doodads = 0;
 -dst-geom-doodads = NULL;
  }
  
  if (src-geom-num_doodads) {
 -- 
 1.6.3.3
 
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel