]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1763
authorCristy <urban-warrior@imagemagick.org>
Sun, 27 Oct 2019 16:55:09 +0000 (12:55 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 27 Oct 2019 16:55:09 +0000 (12:55 -0400)
coders/pdf.c
coders/ps.c

index 3a4a953bfae144f893138632ae7a333aea8fb89a..55fff5e5f2998b4bc9ed5ce2f2685569812e96c0 100644 (file)
@@ -468,10 +468,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
   (void) ParseAbsoluteGeometry(PSPageGeometry,&page);
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
-  page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x)-
-    0.5);
-  page.height=(size_t) ceil((double) (page.height*image->resolution.y/delta.y)-
-    0.5);
+  page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+    image->resolution.x/delta.x)-0.5));
+  page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+    image->resolution.y/delta.y)-0.5));
   /*
     Determine page geometry from the PDF media box.
   */
@@ -487,10 +487,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
         pdf_info.bounds.x2-pdf_info.bounds.x1,pdf_info.bounds.y2-
         pdf_info.bounds.y1,pdf_info.bounds.x1,pdf_info.bounds.y1);
       (void) SetImageProperty(image,"pdf:HiResBoundingBox",geometry,exception);
-      page.width=(size_t) ceil((double) ((pdf_info.bounds.x2-
-        pdf_info.bounds.x1)*image->resolution.x/delta.x)-0.5);
-      page.height=(size_t) ceil((double) ((pdf_info.bounds.y2-
-        pdf_info.bounds.y1)*image->resolution.y/delta.y)-0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.x2-
+        pdf_info.bounds.x1)*image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.y2-
+        pdf_info.bounds.y1)*image->resolution.y/delta.y)-0.5));
     }
   fitPage=MagickFalse;
   option=GetImageOption(image_info,"pdf:fit-page");
@@ -511,10 +511,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
           image=DestroyImage(image);
           return((Image *) NULL);
         }
-      page.width=(size_t) ceil((double) (page.width*image->resolution.x/
-        delta.x)-0.5);
-      page.height=(size_t) ceil((double) (page.height*image->resolution.y/
-        delta.y)-0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+        image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+        image->resolution.y/delta.y)-0.5));
       fitPage=MagickTrue;
     }
   if ((fabs(pdf_info.angle) == 90.0) || (fabs(pdf_info.angle) == 270.0))
index 3a4e327cfb7e668a20d990c20846a57300cf5fb3..4a0ec95ce4c0e340581ebe91f7977b90b4a06341 100644 (file)
@@ -610,8 +610,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
   resolution=image->resolution;
-  page.width=(size_t) ceil((double) (page.width*resolution.x/delta.x)-0.5);
-  page.height=(size_t) ceil((double) (page.height*resolution.y/delta.y)-0.5);
+  page.width=(size_t) ((ssize_t) ceil((double) (page.width*resolution.x/
+    delta.x)-0.5));
+  page.height=(size_t) ((ssize_t) ceil((double) (page.height*resolution.y/
+    delta.y)-0.5));
   /*
     Determine page geometry from the Postscript bounding box.
   */
@@ -627,10 +629,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
         info.bounds.x2-info.bounds.x1,info.bounds.y2-info.bounds.y1,
         info.bounds.x1,info.bounds.y1);
       (void) SetImageProperty(image,"ps:HiResBoundingBox",geometry,exception);
-      page.width=(size_t) ceil((double) ((info.bounds.x2-info.bounds.x1)*
-        resolution.x/delta.x));
-      page.height=(size_t) ceil((double) ((info.bounds.y2-info.bounds.y1)*
-        resolution.y/delta.y));
+      page.width=(size_t) ((ssize_t) ceil((double) ((info.bounds.x2-
+        info.bounds.x1)*resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) ((info.bounds.y2-
+        info.bounds.y1)*resolution.y/delta.y)-0.5));
     }
   fitPage=MagickFalse;
   option=GetImageOption(image_info,"eps:fit-page");
@@ -650,10 +652,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
           image=DestroyImage(image);
           return((Image *) NULL);
         }
-      page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x)
-        -0.5);
-      page.height=(size_t) ceil((double) (page.height*image->resolution.y/
-        delta.y) -0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+        image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+        image->resolution.y/delta.y) -0.5));
       page_geometry=DestroyString(page_geometry);
       fitPage=MagickTrue;
     }