summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2003-11-10 05:09:10 +0000
committerKeith Packard <keithp@keithp.com>2003-11-10 05:09:10 +0000
commit37280d7888001a613640b7d005f4482e7d886c47 (patch)
tree283798907a77e08ccd599f8c7290342133e09470
parentfebeaf7ad1f81ac6b77fa35a5f21e7819c69ebb7 (diff)
Make sure _XROOTPMAP_ID property is right type, format and length before
attempting to use the resulting value.
-rw-r--r--ChangeLog6
-rw-r--r--xcompmgr.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 45faea4..cb4adb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2003-11-09 Keith Packard <keithp@keithp.com>
+ * xcompmgr.c: (root_tile):
+ Make sure _XROOTPMAP_ID property is right type, format and length
+ before attempting to use the resulting value.
+
+2003-11-09 Keith Packard <keithp@keithp.com>
+
* xcompmgr.c: (configure_win):
Configure damage must include shadow region, not just window.
Also, leaking region on each configure.
diff --git a/xcompmgr.c b/xcompmgr.c
index 16260b4..7b55eae 100644
--- a/xcompmgr.c
+++ b/xcompmgr.c
@@ -328,7 +328,8 @@ root_tile (Display *dpy)
if (XGetWindowProperty (dpy, root, XInternAtom (dpy, "_XROOTPMAP_ID", False),
0, 4, False, AnyPropertyType,
- &actual_type, &actual_format, &nitems, &bytes_after, &prop) == Success)
+ &actual_type, &actual_format, &nitems, &bytes_after, &prop) == Success &&
+ actual_type == XInternAtom (dpy, "PIXMAP", False) && actual_format == 32 && nitems == 1)
{
memcpy (&pixmap, prop, 4);
XFree (prop);