Package: src:imagemagick
Severity: wishlist
Tags: patch

Dear Maintainer,

while building the package for i386 (as the current version failed on
the buildds some time ago), I noticed there are some C warnings while
building the code. These are some format warnings, some pointer casts
and an erroneous use of sizeof in random.c.

Please, look at it and maybe apply the attached patch.

Regards
    Jiri Palecek
Index: imagemagick-6.9.9.39+dfsg/coders/pgx.c
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/coders/pgx.c
+++ imagemagick-6.9.9.39+dfsg/coders/pgx.c
@@ -365,7 +365,7 @@ static MagickBooleanType WritePGXImage(c
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  (void) FormatLocaleString(buffer,MaxTextExtent,"PG ML + %ld %lu %lu\n",
+  (void) FormatLocaleString(buffer,MaxTextExtent,"PG ML + %zd %zu %zu\n",
     image->depth,image->columns,image->rows);
   (void) WriteBlob(image,strlen(buffer),(unsigned char *) buffer);
   (void) TransformImageColorspace(image,sRGBColorspace);
Index: imagemagick-6.9.9.39+dfsg/coders/svg.c
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/coders/svg.c
+++ imagemagick-6.9.9.39+dfsg/coders/svg.c
@@ -2915,11 +2915,11 @@ static Image *ReadSVGImage(const ImageIn
             image->x_resolution,image->y_resolution);
           (void) FormatLocaleString(background,MaxTextExtent,
             "rgb(%.20g%%,%.20g%%,%.20g%%)",
-            100.0*QuantumScale*image->background_color.red,
-            100.0*QuantumScale*image->background_color.green,
-            100.0*QuantumScale*image->background_color.blue);
-          (void) FormatLocaleString(opacity,MaxTextExtent,"%.20g",QuantumScale*
-            (QuantumRange-image->background_color.opacity));
+            (double)(100.0*QuantumScale*image->background_color.red),
+            (double)(100.0*QuantumScale*image->background_color.green),
+            (double)(100.0*QuantumScale*image->background_color.blue));
+          (void) FormatLocaleString(opacity,MaxTextExtent,"%.20g",(double)(QuantumScale*
+            (QuantumRange-image->background_color.opacity)));
           (void) FormatLocaleString(command,MaxTextExtent,GetDelegateCommands(
             delegate_info),input_filename,output_filename,density,background,
             opacity,unique);
Index: imagemagick-6.9.9.39+dfsg/magick/color.c
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/magick/color.c
+++ imagemagick-6.9.9.39+dfsg/magick/color.c
@@ -1200,7 +1200,7 @@ MagickExport void ConcatenateColorCompon
   if (channel == OpacityChannel)
     {
       (void) FormatLocaleString(component,MaxTextExtent,"%.*g",
-        GetMagickPrecision(),QuantumScale*ClampToQuantum(color));
+        GetMagickPrecision(),(double)(QuantumScale*ClampToQuantum(color)));
       (void) ConcatenateMagickString(tuple,component,MaxTextExtent);
       return;
     }
Index: imagemagick-6.9.9.39+dfsg/magick/effect.c
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/magick/effect.c
+++ imagemagick-6.9.9.39+dfsg/magick/effect.c
@@ -3391,10 +3391,10 @@ MagickExport Image *RotationalBlurImageC
   if ((cos_theta == (MagickRealType *) NULL) ||
       (sin_theta == (MagickRealType *) NULL))
     {
-      if (cos_theta != (double *) NULL)
-        cos_theta=(double *) RelinquishMagickMemory(cos_theta);
-      if (sin_theta != (double *) NULL)
-        sin_theta=(double *) RelinquishMagickMemory(sin_theta);
+      if (cos_theta != (MagickRealType *) NULL)
+        cos_theta=(MagickRealType *) RelinquishMagickMemory(cos_theta);
+      if (sin_theta != (MagickRealType *) NULL)
+        sin_theta=(MagickRealType *) RelinquishMagickMemory(sin_theta);
       blur_image=DestroyImage(blur_image);
       ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
     }
Index: imagemagick-6.9.9.39+dfsg/magick/magick-type.h
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/magick/magick-type.h
+++ imagemagick-6.9.9.39+dfsg/magick/magick-type.h
@@ -67,7 +67,11 @@ typedef ssize_t SignedQuantum;
 #if defined(MAGICKCORE_HDRI_SUPPORT)
 typedef MagickFloatType Quantum;
 #define QuantumRange  255.0
+#if MAGICKCORE_SIZEOF_DOUBLE_T == 0 || (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
 #define QuantumFormat  "%g"
+#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
+#define QuantumFormat  "%Lg"
+#endif
 #else
 typedef unsigned char Quantum;
 #define QuantumRange  ((Quantum) 255)
@@ -80,7 +84,11 @@ typedef ssize_t SignedQuantum;
 #if defined(MAGICKCORE_HDRI_SUPPORT)
 typedef MagickFloatType Quantum;
 #define QuantumRange  65535.0
+#if MAGICKCORE_SIZEOF_DOUBLE_T == 0 || (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
 #define QuantumFormat  "%g"
+#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
+#define QuantumFormat  "%Lg"
+#endif
 #else
 typedef unsigned short Quantum;
 #define QuantumRange  ((Quantum) 65535)
@@ -93,7 +101,11 @@ typedef MagickDoubleType SignedQuantum;
 #if defined(MAGICKCORE_HDRI_SUPPORT)
 typedef MagickDoubleType Quantum;
 #define QuantumRange  4294967295.0
+#if MAGICKCORE_SIZEOF_DOUBLE_T == 0 || (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
 #define QuantumFormat  "%g"
+#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
+#define QuantumFormat  "%Lg"
+#endif
 #else
 typedef unsigned int Quantum;
 #define QuantumRange  ((Quantum) 4294967295)
@@ -106,7 +118,11 @@ typedef unsigned int Quantum;
 typedef MagickDoubleType SignedQuantum;
 typedef MagickDoubleType Quantum;
 #define QuantumRange  18446744073709551615.0
+#if MAGICKCORE_SIZEOF_DOUBLE_T == 0 || (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
 #define QuantumFormat  "%g"
+#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
+#define QuantumFormat  "%Lg"
+#endif
 #else
 #if !defined(_CH_)
 # error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
Index: imagemagick-6.9.9.39+dfsg/magick/random.c
===================================================================
--- imagemagick-6.9.9.39+dfsg.orig/magick/random.c
+++ imagemagick-6.9.9.39+dfsg/magick/random.c
@@ -237,7 +237,7 @@ MagickExport RandomInfo *AcquireRandomIn
       digest=GetSignatureDigest(signature_info);
       (void) memcpy(random_info->seed,GetStringInfoDatum(digest),
         MagickMin(GetSignatureDigestsize(signature_info),
-        sizeof(*random_info->seed)));
+        sizeof(random_info->seed)));
       signature_info=DestroySignatureInfo(signature_info);
     }
   random_info->seed[1]=0x50a7f451UL;
@@ -282,7 +282,7 @@ MagickExport RandomInfo *DestroyRandomIn
   if (random_info->signature_info != (SignatureInfo *) NULL)
     random_info->signature_info=DestroySignatureInfo(
       random_info->signature_info);
-  (void) memset(random_info->seed,0,sizeof(*random_info->seed));
+  (void) memset(random_info->seed,0,sizeof(random_info->seed));
   random_info->signature=(~MagickCoreSignature);
   UnlockSemaphoreInfo(random_info->semaphore);
   DestroySemaphoreInfo(&random_info->semaphore);

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 4.17.0-rc3-686-pae (SMP w/2 CPU cores)
Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ (charmap=ISO-8859-2), LANGUAGE=cs_CZ 
(charmap=ISO-8859-2)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to