[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/changelog                             |    6 ++++
 debian/patches/110_findglyphbyhash-fix.patch |   35 +++++++++++++++++++++++++++
 debian/patches/series                        |    1 
 3 files changed, 42 insertions(+)

New commits:
commit c8614f81c2fc8985b83b7084a6ffe7e08ad4fefc
Author: Bryce Harrington <bryce@bryceharrington.org>
Date:   Tue Mar 23 19:44:56 2010 -0700

    Add null ptr deref patch from upstream for glyph crash
    (Thanks for chasing this down Sarvatt!)

diff --git a/debian/changelog b/debian/changelog
index ec14a17..a54d68a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,17 @@
 xorg-server (2:1.7.6-1ubuntu1) UNRELEASED; urgency=low
 
+  [Timo Aaltonen]
   * Merge from Debian unstable.
   * Drop patch 107, included in Debian.
   * Drop patch 108, included upstream.
   * control: Drop the udeb, we don't need it for lucid.
   * control: Relax/drop some build-deps caused by the udeb.
 
+  [Bryce Harrington]
+  * Add 110_findglyphbyhash-fix.patch from upstream to fix a sporadic
+    crash in FindGlyphByHash.
+    (LP: #401045)
+
  -- Timo Aaltonen <tjaalton@ubuntu.com>  Tue, 23 Mar 2010 23:43:55 +0200
 
 xorg-server (2:1.7.6-1) unstable; urgency=low
diff --git a/debian/patches/110_findglyphbyhash-fix.patch b/debian/patches/110_findglyphbyhash-fix.patch
new file mode 100644
index 0000000..eb62826
--- /dev/null
+++ b/debian/patches/110_findglyphbyhash-fix.patch
@@ -0,0 +1,35 @@
+This is how the crash can be triggered with only two clients on the system:
+Client A: (already running)
+Client B: Connect
+Client B: CreateGlyphSet(depthN)
+Client A: Disconnect
+Server: free globalGlyphs(depthN)
+Client B: AddGlyphs(depthN)
+Server: SEGV
+
+This crash was introduced with the FindGlyphsByHash function
+in 516b96387b0e57b524a37a96da22dbeeeb041712. Before that revision,
+ResizeGlyphSet was always called before FindGlyphRef, which would
+re-create globalGlyphs(depthN) if necessary.
+
+Signed-off-by: Peter Harris <pharris at opentext.com>
+---
+ render/glyph.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/render/glyph.c b/render/glyph.c
+index 0b864ad..f0f3b19 100644
+--- a/render/glyph.c
++++ b/render/glyph.c
+@@ -217,6 +217,9 @@ FindGlyphByHash (unsigned char sha1[20], int format)
+     GlyphRefPtr gr;
+     CARD32 signature = *(CARD32 *) sha1;
+ 
++    if (!globalGlyphs[format].hashSet)
++	return NULL;
++
+     gr = FindGlyphRef (&globalGlyphs[format],
+ 		       signature, TRUE, sha1);
+ 
+-- 
+1.7.0.2
diff --git a/debian/patches/series b/debian/patches/series
index 09f2101..9d554fb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -42,3 +42,4 @@
 198_nohwaccess.patch
 199_xfvb-help-typo.patch
 200_randr-null.patch
+110_findglyphbyhash-fix.patch


Reply to: