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)