Added allocation failure checks in shadow_picture and caused it to exit
[dana/xcompmgr.git] / xcompmgr.c
index 7e542fe..3d27786 100644 (file)
@@ -581,10 +581,30 @@ shadow_picture (Display *dpy, double opacity, Picture alpha_pict, int width, int
                                  shadowImage->width,
                                  shadowImage->height,
                                  8);
                                  shadowImage->width,
                                  shadowImage->height,
                                  8);
+    if (!shadowPixmap)
+    {
+       XDestroyImage (shadowImage);
+       return None;
+    }
+
     shadowPicture = XRenderCreatePicture (dpy, shadowPixmap,
                                          XRenderFindStandardFormat (dpy, PictStandardA8),
                                          0, 0);
     shadowPicture = XRenderCreatePicture (dpy, shadowPixmap,
                                          XRenderFindStandardFormat (dpy, PictStandardA8),
                                          0, 0);
+    if (!shadowPicture)
+    {
+       XDestroyImage (shadowImage);
+       XFreePixmap (dpy, shadowPixmap);
+       return None;
+    }
+
     gc = XCreateGC (dpy, shadowPixmap, 0, 0);
     gc = XCreateGC (dpy, shadowPixmap, 0, 0);
+    if (!gc)
+    {
+       XDestroyImage (shadowImage);
+       XFreePixmap (dpy, shadowPixmap);
+       XRenderFreePicture (dpy, shadowPicture);
+       return None;
+    }
     
     XPutImage (dpy, shadowPixmap, gc, shadowImage, 0, 0, 0, 0, 
               shadowImage->width,
     
     XPutImage (dpy, shadowPixmap, gc, shadowImage, 0, 0, 0, 0, 
               shadowImage->width,