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: