GraphicsMagick: Tune oss-fuzz static build based on FUZZING_BUIL...

GraphicsMagick Commits <[email protected]> Thu, 28 Nov 2024 10:54:04 -0600
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.37331.1732812854.8001.graphicsmagick-commit@lists.sourceforge.net>
changeset 5502af51b707 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=5502af51b707
summary: Tune oss-fuzz static build based on FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION define

diffstat:

 ChangeLog                              |  11 ++++++++++
 VisualMagick/installer/inc/version.isx |   4 +-
 coders/cals.c                          |   4 +-
 coders/dib.c                           |   6 +++-
 coders/fax.c                           |   4 +-
 coders/html.c                          |   4 +-
 coders/locale.c                        |  10 ++++----
 coders/logo.c                          |  14 ++++++------
 coders/mpr.c                           |   6 ++--
 coders/sun.c                           |   8 +++---
 coders/xpm.c                           |   4 +-
 coders/xtrn.c                          |  10 ++++----
 magick/static.c                        |  36 ++++++++++++++++++++++++++++++---
 magick/version.h                       |   4 +-
 www/ChangeLog.html                     |  12 +++++++++++
 15 files changed, 95 insertions(+), 42 deletions(-)

diffs (truncated from 513 to 500 lines):

diff -r cd569a39d022 -r 5502af51b707 ChangeLog
--- a/ChangeLog	Sun Nov 24 08:53:29 2024 -0600
+++ b/ChangeLog	Thu Nov 28 10:53:27 2024 -0600
@@ -1,3 +1,14 @@
+2024-11-28  Bob Friesenhahn  <[email protected]>
+
+	* magick/static.c (StaticModules): Skip registration of static
+	modules which are not useful for oss-fuzz build when
+	FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined.
+
+	* coders/dib.c (RegisterDIBImage): Admit to supporting a "DIB"
+	format in oss-fuzz build so it will be tested by oss-fuzz.  DIB is
+	normally hidden from the user given that it is normally an
+	embedded blob in legacy formats like WMF.
+
 2024-11-24  Bob Friesenhahn  <[email protected]>
 
 	* NEWS.txt: Update the news.
diff -r cd569a39d022 -r 5502af51b707 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Sun Nov 24 08:53:29 2024 -0600
+++ b/VisualMagick/installer/inc/version.isx	Thu Nov 28 10:53:27 2024 -0600
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020241124"
-#define public MagickPackageReleaseDate "snapshot-20241124"
+#define public MagickPackageVersionAddendum ".020241128"
+#define public MagickPackageReleaseDate "snapshot-20241128"
diff -r cd569a39d022 -r 5502af51b707 coders/cals.c
--- a/coders/cals.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/cals.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2009-2020 GraphicsMagick Group
+% Copyright (C) 2009-2024 GraphicsMagick Group
 %
 % This program is covered by multiple licenses, which are described in
 % Copyright.txt. You should have received a copy of Copyright.txt with this
@@ -590,7 +590,7 @@
   entry->description=description;
   entry->note=note;
   entry->module=module;
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   (void) RegisterMagickInfo(entry);
 
   entry=SetMagickInfo("CALS");
diff -r cd569a39d022 -r 5502af51b707 coders/dib.c
--- a/coders/dib.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/dib.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1183,7 +1183,9 @@
   entry->encoder=(EncoderHandler) WriteDIBImage;
   entry->magick=(MagickHandler) IsDIB;
   entry->adjoin=False;
-  entry->stealth=True;
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
+  entry->stealth=True; /* Don't list in '-list format' output */
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   entry->description="Microsoft Windows 3.X Packed Device-Independent Bitmap";
   entry->module="DIB";
   (void) RegisterMagickInfo(entry);
@@ -1193,7 +1195,7 @@
   /* entry->encoder=(EncoderHandler) WriteDIBImage; */
   entry->magick=(MagickHandler) IsDIB;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->raw=True; /* Requires size to work correctly. */
   entry->description="Microsoft Windows 3.X Packed Device-Independent Bitmap + Mask";
   entry->module="DIB";
diff -r cd569a39d022 -r 5502af51b707 coders/fax.c
--- a/coders/fax.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/fax.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -222,7 +222,7 @@
   entry->magick=(MagickHandler) IsFAX;
   entry->adjoin=False;
   entry->description="Group 3 FAX (same as \"FAX\")";
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   entry->module="FAX";
   entry->coder_class=PrimaryCoderClass;
   (void) RegisterMagickInfo(entry);
diff -r cd569a39d022 -r 5502af51b707 coders/html.c
--- a/coders/html.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/html.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -122,7 +122,7 @@
   entry->magick=(MagickHandler) IsHTML;
   entry->adjoin=False;
   entry->description="Hypertext Markup Language and a client-side image map";
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   entry->module="HTML";
   entry->coder_class=StableCoderClass;
   (void) RegisterMagickInfo(entry);
diff -r cd569a39d022 -r 5502af51b707 coders/locale.c
--- a/coders/locale.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/locale.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 %
 % This program is covered by multiple licenses, which are described in
@@ -378,7 +378,7 @@
   entry->decoder=(DecoderHandler) ReadLOCALEImage;
   entry->encoder=(EncoderHandler) WriteLOCALEImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Locale Message File";
   entry->module="LOCALE";
   (void) RegisterMagickInfo(entry);
@@ -386,7 +386,7 @@
   entry=SetMagickInfo("LOCALEMC");
   entry->encoder=(EncoderHandler) WriteLOCALEImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Microsoft Message File";
   entry->module="LOCALE";
   (void) RegisterMagickInfo(entry);
@@ -394,7 +394,7 @@
   entry=SetMagickInfo("LOCALEC");
   entry->encoder=(EncoderHandler) WriteLOCALEImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Locale Message File - C code";
   entry->module="LOCALE";
   (void) RegisterMagickInfo(entry);
@@ -402,7 +402,7 @@
   entry=SetMagickInfo("LOCALEH");
   entry->encoder=(EncoderHandler) WriteLOCALEImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Locale Message File - C header file";
   entry->module="LOCALE";
   (void) RegisterMagickInfo(entry);
diff -r cd569a39d022 -r 5502af51b707 coders/logo.c
--- a/coders/logo.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/logo.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Parts Copyright (c) 1985-1988 by Supoj Sutanthavibul
 % Parts Copyright (c) 1989-2000 by Brian V. Smith
 % Parts Copyright (c) 1991 by Paul King
@@ -5102,7 +5102,7 @@
   entry=SetMagickInfo("GRANITE");
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Granite texture";
   entry->module="LOGO";
   entry->extension_treatment=IgnoreExtensionTreatment;
@@ -5113,7 +5113,7 @@
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->encoder=(EncoderHandler) WriteLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Internal format";
   entry->module="LOGO";
   entry->extension_treatment=IgnoreExtensionTreatment;
@@ -5133,7 +5133,7 @@
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->encoder=(EncoderHandler) WriteLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="GraphicsMagick Logo";
   entry->module="LOGO";
   entry->extension_treatment=IgnoreExtensionTreatment;
@@ -5143,7 +5143,7 @@
   entry=SetMagickInfo("NETSCAPE");
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Netscape 216 color cube";
   entry->module="LOGO";
   entry->extension_treatment=IgnoreExtensionTreatment;
@@ -5153,7 +5153,7 @@
   entry=SetMagickInfo("PATTERN");
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Tiled pattern image";
   entry->module="LOGO";
   entry->extension_treatment=IgnoreExtensionTreatment;
@@ -5163,7 +5163,7 @@
   entry=SetMagickInfo("ROSE");
   entry->decoder=(DecoderHandler) ReadLOGOImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="70x46 Truecolor rose";
   entry->extension_treatment=IgnoreExtensionTreatment;
   entry->module="LOGO";
diff -r cd569a39d022 -r 5502af51b707 coders/mpr.c
--- a/coders/mpr.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/mpr.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2010 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 %
 % This program is covered by multiple licenses, which are described in
@@ -135,7 +135,7 @@
   entry->decoder=(DecoderHandler) ReadMPRImage;
   entry->encoder=(EncoderHandler) WriteMPRImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Magick Persistent Registry";
   entry->module="MPR";
   entry->coder_class=PrimaryCoderClass;
@@ -147,7 +147,7 @@
   entry->encoder=(EncoderHandler) WriteMPRImage;
   entry->stealth=True;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="Magick Persistent Registry";
   entry->module="MPRI";
   entry->coder_class=PrimaryCoderClass;
diff -r cd569a39d022 -r 5502af51b707 coders/sun.c
--- a/coders/sun.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/sun.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -855,7 +855,7 @@
   entry->magick=(MagickHandler) IsSUN;
   entry->description="SUN Rasterfile (1 bit)";
   entry->module="SUN";
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   (void) RegisterMagickInfo(entry);
 
   entry=SetMagickInfo("IM8");
@@ -864,7 +864,7 @@
   entry->magick=(MagickHandler) IsSUN;
   entry->description="SUN Rasterfile (8 bit)";
   entry->module="SUN";
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   (void) RegisterMagickInfo(entry);
 
   entry=SetMagickInfo("IM24");
@@ -873,7 +873,7 @@
   entry->magick=(MagickHandler) IsSUN;
   entry->description="SUN Rasterfile (24 bit)";
   entry->module="SUN";
-  entry->stealth=MagickTrue;
+  entry->stealth=MagickTrue; /* Don't list in '-list format' output */
   (void) RegisterMagickInfo(entry);
 
   entry=SetMagickInfo("RAS");
diff -r cd569a39d022 -r 5502af51b707 coders/xpm.c
--- a/coders/xpm.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/xpm.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2022 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 % Copyright 1991-1999 E. I. du Pont de Nemours and Company
 %
@@ -705,7 +705,7 @@
   entry->decoder=(DecoderHandler) ReadXPMImage;
   entry->encoder=(EncoderHandler) WriteXPMImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="X Windows system pixmap (color)";
   entry->module="XPM";
   (void) RegisterMagickInfo(entry);
diff -r cd569a39d022 -r 5502af51b707 coders/xtrn.c
--- a/coders/xtrn.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/coders/xtrn.c	Thu Nov 28 10:53:27 2024 -0600
@@ -1,5 +1,5 @@
 /*
-% Copyright (C) 2003-2023 GraphicsMagick Group
+% Copyright (C) 2003-2024 GraphicsMagick Group
 % Copyright (C) 2002 ImageMagick Studio
 %
 % This program is covered by multiple licenses, which are described in
@@ -261,7 +261,7 @@
   entry->decoder=ReadXTRNImage;
   entry->encoder=WriteXTRNImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="External transfer of a file";
   entry->module="XTRN";
   RegisterMagickInfo(entry);
@@ -270,7 +270,7 @@
   entry->decoder=ReadXTRNImage;
   entry->encoder=WriteXTRNImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="External transfer of a image in memory";
   entry->module="XTRN";
   RegisterMagickInfo(entry);
@@ -279,7 +279,7 @@
   entry->decoder=ReadXTRNImage;
   entry->encoder=WriteXTRNImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="IExternal transfer of a blob in memory";
   entry->module="XTRN";
   RegisterMagickInfo(entry);
@@ -288,7 +288,7 @@
   entry->decoder=ReadXTRNImage;
   entry->encoder=WriteXTRNImage;
   entry->adjoin=False;
-  entry->stealth=True;
+  entry->stealth=True; /* Don't list in '-list format' output */
   entry->description="External transfer via a smart array interface";
   entry->module="XTRN";
   RegisterMagickInfo(entry);
diff -r cd569a39d022 -r 5502af51b707 magick/static.c
--- a/magick/static.c	Sun Nov 24 08:53:29 2024 -0600
+++ b/magick/static.c	Thu Nov 28 10:53:27 2024 -0600
@@ -66,20 +66,28 @@
   STATICM("BMP",RegisterBMPImage,UnregisterBMPImage),
   STATICM("BRAILLE",RegisterBRAILLEImage,UnregisterBRAILLEImage),
   STATICM("CALS",RegisterCALSImage,UnregisterCALSImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("CAPTION",RegisterCAPTIONImage,UnregisterCAPTIONImage),
+#endif
   STATICM("CINEON",RegisterCINEONImage,UnregisterCINEONImage),
-#if defined(HasWINGDI32)
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
+#  if defined(HasWINGDI32)
   STATICM("CLIPBOARD",RegisterCLIPBOARDImage,UnregisterCLIPBOARDImage),
-#endif
+#  endif
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("CMYK",RegisterCMYKImage,UnregisterCMYKImage),
   STATICM("CUT",RegisterCUTImage,UnregisterCUTImage),
   STATICM("DCM",RegisterDCMImage,UnregisterDCMImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("DCRAW",RegisterDCRAWImage,UnregisterDCRAWImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("DIB",RegisterDIBImage,UnregisterDIBImage),
   STATICM("DPX",RegisterDPXImage,UnregisterDPXImage),
-#if defined(HasWINGDI32)
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
+#  if defined(HasWINGDI32)
   STATICM("EMF",RegisterEMFImage,UnregisterEMFImage),
-#endif
+#  endif
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
 #if defined(HasTIFF)
   STATICM("EPT",RegisterEPTImage,UnregisterEPTImage),
 #endif
@@ -90,16 +98,22 @@
 #endif
   STATICM("GIF",RegisterGIFImage,UnregisterGIFImage),
   STATICM("GRAY",RegisterGRAYImage,UnregisterGRAYImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("GRADIENT",RegisterGRADIENTImage,UnregisterGRADIENTImage),
   STATICM("HISTOGRAM",RegisterHISTOGRAMImage,UnregisterHISTOGRAMImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("HRZ",RegisterHRZImage,UnregisterHRZImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("HTML",RegisterHTMLImage,UnregisterHTMLImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
 #if defined(HasHEIF)
   STATICM("HEIF",RegisterHEIFImage,UnregisterHEIFImage),
 #endif
   STATICM("ICON",RegisterICONImage,UnregisterICONImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("IDENTITY",RegisterIDENTITYImage,UnregisterIDENTITYImage),
   STATICM("INFO",RegisterINFOImage,UnregisterINFOImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
 #if defined(HasJBIG)
   STATICM("JBIG",RegisterJBIGImage,UnregisterJBIGImage),
 #endif
@@ -115,8 +129,10 @@
 #if defined(HasJXL)
   STATICM("JXL",RegisterJXLImage,UnregisterJXLImage),
 #endif
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("LABEL",RegisterLABELImage,UnregisterLABELImage),
   STATICM("LOCALE",RegisterLOCALEImage,UnregisterLOCALEImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("LOGO",RegisterLOGOImage,UnregisterLOGOImage),
   STATICM("MAC",RegisterMACImage,UnregisterMACImage),
   STATICM("MAP",RegisterMAPImage,UnregisterMAPImage),
@@ -126,9 +142,11 @@
   STATICM("MIFF",RegisterMIFFImage,UnregisterMIFFImage),
   STATICM("MONO",RegisterMONOImage,UnregisterMONOImage),
   STATICM("MPC",RegisterMPCImage,UnregisterMPCImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("MPEG",RegisterMPEGImage,UnregisterMPEGImage),
   STATICM("MPR",RegisterMPRImage,UnregisterMPRImage),
   STATICM("MSL",RegisterMSLImage,UnregisterMSLImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("MTV",RegisterMTVImage,UnregisterMTVImage),
   STATICM("MVG",RegisterMVGImage,UnregisterMVGImage),
   STATICM("NULL",RegisterNULLImage,UnregisterNULLImage),
@@ -144,12 +162,16 @@
   STATICM("PDF",RegisterPDFImage,UnregisterPDFImage),
   STATICM("PICT",RegisterPICTImage,UnregisterPICTImage),
   STATICM("PIX",RegisterPIXImage,UnregisterPIXImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("PLASMA",RegisterPLASMAImage,UnregisterPLASMAImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
 #if defined(HasPNG)
   STATICM("PNG",RegisterPNGImage,UnregisterPNGImage),
 #endif
   STATICM("PNM",RegisterPNMImage,UnregisterPNMImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("PREVIEW",RegisterPREVIEWImage,UnregisterPREVIEWImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("PS",RegisterPSImage,UnregisterPSImage),
   STATICM("PS2",RegisterPS2Image,UnregisterPS2Image),
   STATICM("PS3",RegisterPS3Image,UnregisterPS3Image),
@@ -163,14 +185,18 @@
   STATICM("SCT",RegisterSCTImage,UnregisterSCTImage),
   STATICM("SFW",RegisterSFWImage,UnregisterSFWImage),
   STATICM("SGI",RegisterSGIImage,UnregisterSGIImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("STEGANO",RegisterSTEGANOImage,UnregisterSTEGANOImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("SUN",RegisterSUNImage,UnregisterSUNImage),
   STATICM("SVG",RegisterSVGImage,UnregisterSVGImage),
   STATICM("TGA",RegisterTGAImage,UnregisterTGAImage),
 #if defined(HasTIFF)
   STATICM("TIFF",RegisterTIFFImage,UnregisterTIFFImage),
 #endif
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("TILE",RegisterTILEImage,UnregisterTILEImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("TIM",RegisterTIMImage,UnregisterTIMImage),
   STATICM("TOPOL",RegisterTOPOLImage,UnregisterTOPOLImage),
   STATICM("TTF",RegisterTTFImage,UnregisterTTFImage),
@@ -191,7 +217,9 @@
   STATICM("X",RegisterXImage,UnregisterXImage),
 #endif /* defined(HasX11) */
   STATICM("XBM",RegisterXBMImage,UnregisterXBMImage),
+#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
   STATICM("XC",RegisterXCImage,UnregisterXCImage),
+#endif /* if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) */
   STATICM("XCF",RegisterXCFImage,UnregisterXCFImage),
   STATICM("XPM",RegisterXPMImage,UnregisterXPMImage),
 #if defined(_VISUALC_)
diff -r cd569a39d022 -r 5502af51b707 magick/version.h
--- a/magick/version.h	Sun Nov 24 08:53:29 2024 -0600
+++ b/magick/version.h	Thu Nov 28 10:53:27 2024 -0600
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x282502
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 28,25,2
-#define MagickChangeDate   "20241124"
-#define MagickReleaseDate  "snapshot-20241124"
+#define MagickChangeDate   "20241128"
+#define MagickReleaseDate  "snapshot-20241128"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r cd569a39d022 -r 5502af51b707 www/ChangeLog.html
--- a/www/ChangeLog.html	Sun Nov 24 08:53:29 2024 -0600
+++ b/www/ChangeLog.html	Thu Nov 28 10:53:27 2024 -0600
@@ -38,6 +38,18 @@
 
 <main id="graphicsmagick-changelog">
 <h1 class="title">GraphicsMagick ChangeLog</h1>
+<p>2024-11-28  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
+<blockquote>