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 <[email protected]> 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 <[email protected]> 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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

