drewnoakes / metadata-extractor-dotnet

Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test against images generated by fuzzing

drewnoakes opened this issue · comments

In drewnoakes/metadata-extractor#422 @alpire generously provided a set of images that were generated by fuzzing which trigger various exceptions that indicate potential bugs in the implementation when dealing with malformed inputs (e.g. divide by zero, bounds exceptions, negative array lengths and so forth).

We should run those images against the .NET implementation too and fix any resulting issues.

(When fixing these, let's use one pull request per problem.)

There is one remaining problem. The new files in the mp3 directory throw an ImageProcessingException with the message "File format could not be determined". But I think that is fine.

Here is the output of the new files generated by fuzzing:

C:\projects\drewnoakes\metadata-extractor-images\heic/IllegalArgumentException.HeifReader.processBoxes.heif
C:\projects\drewnoakes\metadata-extractor-images\heic/NegativeArraySizeException.HeifReader.processBoxes.heif
C:\projects\drewnoakes\metadata-extractor-images\heic/NegativeArraySizeException.ItemInfoBox.init.heif
C:\projects\drewnoakes\metadata-extractor-images\heic/NullPointerException.HeifPictureHandler.processBox.heif
C:\projects\drewnoakes\metadata-extractor-images\jpg/NegativeArraySizeException.DuckyReader.extract.mp3
C:\projects\drewnoakes\metadata-extractor-images\jpg/NegativeArraySizeException.DuckyReader.extract.mp3
        [Ducky] End of data reached.
        [Ducky] End of data reached.
        [Ducky] End of data reached.
        [Ducky] End of data reached.
        [Ducky] End of data reached.
        [Ducky] End of data reached.
        [Ducky] End of data reached.
C:\projects\drewnoakes\metadata-extractor-images\mp3/ArithmeticException.Mp3Reader.extract.mp3
        [ImageProcessingException] C:\projects\drewnoakes\metadata-extractor-images\mp3/ArithmeticException.Mp3Reader.extract.mp3
C:\projects\drewnoakes\metadata-extractor-images\mp3/ArrayIndexOutOfBoundsException.Mp3Reader.extract.mp3
        [ImageProcessingException] C:\projects\drewnoakes\metadata-extractor-images\mp3/ArrayIndexOutOfBoundsException.Mp3Reader.extract.mp3
C:\projects\drewnoakes\metadata-extractor-images\mp3/ArrayIndexOutOfBoundsException.Mp3Reader.setBitrate.mp3
        [ImageProcessingException] C:\projects\drewnoakes\metadata-extractor-images\mp3/ArrayIndexOutOfBoundsException.Mp3Reader.setBitrate.mp3
C:\projects\drewnoakes\metadata-extractor-images\psd/AssertionError.PsdReader.extract.psd
C:\projects\drewnoakes\metadata-extractor-images\psd/AssertionError.PsdReader.extract.psd
        [PSD Header] Unable to read PSD image resources
Processed 9 files (read 134,458 of 134,891 bytes) with 3 exceptions and 8 file errors

The MP3 files are not valid files. In the Java version I recently fixed MP3 file detection and those files are no longer detected as MP3s, which is correct.

Ok, I think this Issue is done.