tags 322550 + patch thanks On Thu, Aug 11, 2005 at 14:12:35 -0400, Michel Dänzer wrote:
> > This could be a fix for this bug. > Hi, David, is the attached patch acceptable for the 6.9 branch? Cheers, Julien Cristau
Index: debian/patches/series =================================================================== --- debian/patches/series (revision 650) +++ debian/patches/series (working copy) @@ -1,3 +1,4 @@ +general/000_backport_from_HEAD.diff -p0 general/000_backport_from_author_xterm.diff -p0 general/000_stolen_from_linuxwacom_wacom_driver.diff -p0 general/001_kernel_version_in_banner.diff -p0 Index: debian/patches/general/000_backport_from_HEAD.diff =================================================================== --- debian/patches/general/000_backport_from_HEAD.diff (revision 0) +++ debian/patches/general/000_backport_from_HEAD.diff (revision 0) @@ -0,0 +1,62 @@ +$Id$ + +Thu Aug 11 11:43:32 2005 SÞren Sandmann <[EMAIL PROTECTED]> + + * programs/Xserver/hw/xfree86/xaa/xaaTEText.c + (XAAGlyphBltTEColorExpansion): Make sure we don't + crash on glyphs with NULL bits. Bug 659. + +Index: xc/programs/Xserver/hw/xfree86/xaa/xaaTEText.c +=================================================================== +--- xc/programs/Xserver/hw/xfree86/xaa/xaaTEText.c.orig 2005-09-30 16:27:39.000000000 +0200 ++++ xc/programs/Xserver/hw/xfree86/xaa/xaaTEText.c 2005-09-30 20:46:44.000000000 +0200 +@@ -253,6 +253,7 @@ + RightEdge = min(Right, pbox->x2); + + if(RightEdge > LeftEdge) { /* we have something to draw */ ++ unsigned int *fallbackBits = NULL; + ytop = max(Top, pbox->y1); + ybot = min(Bottom, pbox->y2); + +@@ -265,9 +266,22 @@ + int count; + glyphs = (unsigned int**)(infoRec->PreAllocMem); + +- for(count = 0; count < nglyph; count++) ++ for(count = 0; count < nglyph; count++) { + glyphs[count] = (unsigned int*) + FONTGLYPHBITS(gBase,*ppci++); ++ if (!glyphs[count]) { ++ /* Glyphs with NULL bits do exist in the wild. ++ Replace with blank bits in that case */ ++ ++ if (!fallbackBits) { ++ int fontHeight = Bottom - Top + 1; ++ fallbackBits = xcalloc (glyphWidth * fontHeight, 1); ++ if (!fallbackBits) ++ return; ++ } ++ glyphs[count] = fallbackBits; ++ } ++ } + + /* our new unrolled TE code only writes DWORDS at a time + so it can read up to 6 characters past the last one +@@ -280,12 +294,15 @@ + glyphs[count + 5] = glyphs[0]; + } + +- /* x, y, w, h, skipleft, skiptop, glyphp, glyphWidth, fg, bg, rop, pm */ ++ /* x, y, w, h, skipleft, skiptop, glyphp, glyphWidth, fg, bg, rop, pm */ + + (*infoRec->TEGlyphRenderer)( pScrn, + LeftEdge, ytop, RightEdge - LeftEdge, ybot - ytop, + skippix, ytop - Top, glyphs + skipglyphs, glyphWidth, +- fg, bg, rop, planemask); ++ fg, bg, rop, planemask); ++ ++ if (fallbackBits) ++ xfree (fallbackBits); + } + + nbox--; pbox++; Property changes on: debian/patches/general/000_backport_from_HEAD.diff ___________________________________________________________________ Name: svn:keywords + Id Index: debian/changelog =================================================================== --- debian/changelog (revision 650) +++ debian/changelog (working copy) @@ -1,5 +1,6 @@ xorg-x11 (6.8.99.900.dfsg.1-0pre2) UNRELEASED; urgency=low + [ David Nusinow ] * MANIFEST updates for the following + amd64 (Thanks Ari Pollak) + powerpc (Thanks Sven Luther) @@ -21,8 +22,13 @@ statically linked server to only shipping the debugging symbols in that package. - -- David Nusinow <[EMAIL PROTECTED]> Thu, 29 Sep 2005 21:43:25 -0400 + [ Julien Cristau ] + * Add patch by SÞren Sandmann to fix crash on fonts will NULL bits, stolen + from CVS HEAD. Thanks to Michel DÀnzer for pointing us to the fix. + (Closes: #322550) + -- Julien Cristau <[EMAIL PROTECTED]> Fri, 30 Sep 2005 20:58:08 +0200 + xorg-x11 (6.8.99.900.dfsg.1-0pre1) experimental; urgency=low [ David Nusinow ]