Skip to content

Regression opening RLE and deflate encoded images. #1932

@JimBobSquarePants

Description

@JimBobSquarePants

Magick.NET version

Magick.NET-Q16-AnyCPU 14.9.1

Environment (Operating system, version and so on)

Windows 11 .NET 8

Description

I'm upgrading the version of Magick.NET-Q16-AnyCPU used by the ImageSharp tests reference decoder from v13.10.0 to v14.9.1 to avoid security warnings and am seeing new exceptions for four images that were previously possible to decode.

I've attached the images in a zip file. The exceptions returned are listed below:

RunLengthEncoded-inverted.bmp

      Message: 
        ImageMagick.MagickCoderErrorException : compression not supported `' @ error/bmp.c/ReadBMPImage/843

      Stack Trace: 
        NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller, Void* data)
        NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller)
        MagickImageCollection.AddImages(Stream stream, IMagickReadSettings`1 readSettings, Boolean ping)
        MagickImageCollection.Read(Stream stream, IMagickReadSettings`1 readSettings)
        MagickImageCollection.ctor(Stream stream, IMagickReadSettings`1 readSettings)

pal8rlecut.bmp

      Message: 
ImageMagick.MagickCorruptImageErrorException : unable to runlength decode image `' @ error/bmp.c/ReadBMPImage/1163

      Stack Trace: 
NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller, Void* data)
MagickImageCollection.AddImages(Stream stream, IMagickReadSettings`1 readSettings, Boolean ping)

BigTIFF_Indexed4_Deflate.tif

      Message: 
ImageMagick.MagickCoderErrorException : Decoding error at scanline 0. `ZIPDecode' @ error/tiff.c/TIFFErrors/575

      Stack Trace: 
NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller, Void* data)
MagickImageCollection.AddImages(Stream stream, IMagickReadSettings`1 readSettings, Boolean ping)

multipage_deflate_withPreview.tiff

      Message: 
ImageMagick.MagickCoderErrorException : Decoding error at scanline 0. `ZIPDecode' @ error/tiff.c/TIFFErrors/575

      Stack Trace: 
NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller, Void* data)
MagickImageCollection.AddImages(Stream stream, IMagickReadSettings`1 readSettings, Boolean ping)

rgb_small_deflate.tiff

      Message: 
ImageMagick.MagickCoderErrorException : Decoding error at scanline 0. `ZIPDecode' @ error/tiff.c/TIFFErrors/575

      Stack Trace: 
NativeMagickImageCollection.ReadStream(IMagickSettings`1 settings, ReadWriteStreamDelegate reader, SeekStreamDelegate seeker, TellStreamDelegate teller, Void* data)
MagickImageCollection.AddImages(Stream stream, IMagickReadSettings`1 readSettings, Boolean ping)

Steps to Reproduce

The crux of the code is as follows:

BmpReadDefines bmpReadDefines = new()
{
    IgnoreFileSize = !this.validate,
};
PngReadDefines pngReadDefines = new()
{
    IgnoreCrc = !this.validate
};

MagickReadSettings settings = new()
{
    FrameCount = options.MaxFrames
};
settings.SetDefines(bmpReadDefines);
settings.SetDefines(pngReadDefines);

using MagickImageCollection magickImageCollection = new(stream, settings);

Images

issues.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions