From 1f5e8a462908a7c6e7eac5b53c70749837d29c64 Mon Sep 17 00:00:00 2001 From: floydinator-git <78954063+floydinator-git@users.noreply.github.com> Date: Tue, 10 Sep 2024 23:04:09 -0400 Subject: Fix ImageMetadataDatabase::calculateImageSize calling Image::readPngMetadata on non-PNG images. --- source/core/StarImage.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/core/StarImage.cpp') diff --git a/source/core/StarImage.cpp b/source/core/StarImage.cpp index 82e3b05..52c2370 100644 --- a/source/core/StarImage.cpp +++ b/source/core/StarImage.cpp @@ -17,6 +17,12 @@ void readPngData(png_structp pngPtr, png_bytep data, png_size_t length) { ((IODevice*)png_get_io_ptr(pngPtr))->readFull((char*)data, length); }; +bool Image::isPng(IODevicePtr device) { + png_byte header[8]; + device->readAbsolute(0, (char*)header, sizeof(header)); + return !png_sig_cmp(header, 0, sizeof(header)); +} + Image Image::readPng(IODevicePtr device) { png_byte header[8]; device->readFull((char*)header, sizeof(header)); -- cgit v1.2.3