diff --git a/pad-size-of-system-memory-copy-for-1x1-pixmaps b/pad-size-of-system-memory-copy-for-1x1-pixmaps new file mode 100644 index 0000000..0dc60f4 --- /dev/null +++ b/pad-size-of-system-memory-copy-for-1x1-pixmaps @@ -0,0 +1,29 @@ +From: Michel Dänzer +Subject: Pad size of system memory copy for 1x1 pixmaps +References: bfo#32803 bnc#652523 + +Temporary description by: Jeff Mahoney + This patch fixes a crash that occured frequently with glibc malloc + perturbing enabled and was a bit more random otherwise. The issue + appears to be that the pExaPixmap for 1x1 pixmaps was allocating a single + byte. The patch uses paddedWidth, which I expect is 4 bytes instead. + +Acked-by: Jeff Mahoney +--- + + exa/exa_mixed.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c +index ef20eb5..606f1e1 100644 +--- a/exa/exa_mixed.c ++++ b/exa/exa_mixed.c +@@ -98,7 +98,7 @@ exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth, + pExaPixmap->use_gpu_copy = FALSE; + + if (w == 1 && h == 1) { +- pExaPixmap->sys_ptr = malloc((pPixmap->drawable.bitsPerPixel + 7) / 8); ++ pExaPixmap->sys_ptr = malloc(paddedWidth); + + /* Set up damage tracking */ + pExaPixmap->pDamage = DamageCreate(exaDamageReport_mixed, NULL, diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index bffba67..a472f6e 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jan 5 20:56:44 CET 2011 - jeffm@suse.de + +- pad-size-of-system-memory-copy-for-1x1-pixmaps: + * Pad size of system memory copy for 1x1 pixmaps (bnc#652523, + bfo#32803) + ------------------------------------------------------------------- Mon Jan 3 06:35:03 UTC 2011 - sndirsch@novell.com diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 9183165..9ed3eda 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -121,6 +121,7 @@ Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch Patch221: commit-5c6a2f9.diff Patch222: sync-fix.patch Patch223: use-last-screen.patch +Patch224: pad-size-of-system-memory-copy-for-1x1-pixmaps %if %moblin Patch300: moblin-use_preferred_mode_for_all_outputs.diff %endif @@ -252,6 +253,7 @@ popd %patch221 -p1 %patch222 -p1 %patch223 -p1 +%patch224 -p1 %if %moblin %patch300 -p1 %endif