summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/compiz/files/compiz-0.6.2-CVE-2007-3920.patch')
-rw-r--r--x11-wm/compiz/files/compiz-0.6.2-CVE-2007-3920.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/x11-wm/compiz/files/compiz-0.6.2-CVE-2007-3920.patch b/x11-wm/compiz/files/compiz-0.6.2-CVE-2007-3920.patch
new file mode 100644
index 000000000000..e2de8fd8563f
--- /dev/null
+++ b/x11-wm/compiz/files/compiz-0.6.2-CVE-2007-3920.patch
@@ -0,0 +1,29 @@
+Index: compiz-0.6.2/src/screen.c
+===================================================================
+--- compiz-0.6.2.orig/src/screen.c
++++ compiz-0.6.2/src/screen.c
+@@ -2244,7 +2244,8 @@ findTopLevelWindowAtScreen (CompScreen *
+ for (w = s->windows; w; w = w->next)
+ if (w->frame == id)
+ return w;
+- }
++ } else if (w->resName && strstr(w->resName,"screensaver"))
++ return w;
+
+ return NULL;
+ }
+Index: compiz-0.6.2/src/paint.c
+===================================================================
+--- compiz-0.6.2.orig/src/paint.c
++++ compiz-0.6.2/src/paint.c
+@@ -211,7 +211,9 @@ paintOutputRegion (CompScreen *sc
+ if (count == 0 &&
+ !REGION_NOT_EMPTY (tmpRegion) &&
+ screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b &&
+- XEqualRegion (w->region, &screen->region))
++ XEqualRegion (w->region, &screen->region) &&
++ !(w->resName && strcmp(w->resName, "gnome-screensaver") == 0)
++ )
+ {
+ unredirectWindow (w);
+ fullscreenWindow = w;