xf86-video-intel: uxa/uxa-glyphs.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Jun 28 12:27:18 PDT 2011


 uxa/uxa-glyphs.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 18d08e49d270b7a05f14a309759c9315e5ab9679
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Jun 28 20:25:46 2011 +0100

    uxa/glyphs: Fallback instead of crashing on large strings
    
    Not ideal, but being slow is a major improvement over losing data.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36860
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index 0f5ddda..7b2edea 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -937,6 +937,11 @@ uxa_glyphs_via_mask(CARD8 op,
 	if (!pixmap)
 		return 1;
 
+	if (!uxa_pixmap_is_offscreen(pixmap)) {
+		screen->DestroyPixmap(pixmap);
+		return -1;
+	}
+
 	uxa_clear_pixmap(screen, uxa_screen, pixmap);
 
 	component_alpha = NeedsComponent(maskFormat->format);
@@ -1129,6 +1134,11 @@ fallback:
 		if (!pixmap)
 			return;
 
+		if (!uxa_pixmap_is_offscreen(pixmap)) {
+			screen->DestroyPixmap(pixmap);
+			goto fallback;
+		}
+
 		gc = GetScratchGC(depth, screen);
 		if (!gc) {
 			screen->DestroyPixmap(pixmap);


More information about the xorg-commit mailing list