File GraphicsMagick-1.2.5-SA35216.patch of Package GraphicsMagick

--- magick/xwindow.c
+++ magick/xwindow.c
@@ -5378,6 +5378,9 @@
   const MagickXResourceInfo *resource_info,MagickXWindowInfo *window,Image *image,
   unsigned int width,unsigned int height)
 {
+#define CheckOverflowException(length,width,height) \
+  (((height) != 0) && ((length)/((size_t) height) != ((size_t) width)))
+
   int
     depth,
     format;
@@ -5515,9 +5518,12 @@
         &segment_info[1],width,height);
       window->shared_memory&=(ximage != (XImage *) NULL);
 
+      length=(size_t) ximage->bytes_per_line*ximage->height;
+      if (CheckOverflowException(length,ximage->bytes_per_line,ximage->height))
+        window->shared_memory=MagickFalse;
+
       if (window->shared_memory)
-        segment_info[1].shmid=shmget(IPC_PRIVATE,(size_t)
-          (ximage->bytes_per_line*ximage->height),IPC_CREAT | 0777);
+        segment_info[1].shmid=shmget(IPC_PRIVATE, length,IPC_CREAT | 0777);
       window->shared_memory&=(segment_info[1].shmid >= 0);
 
       if (window->shared_memory)
openSUSE Build Service is sponsored by