vcl/source/filter/png/PngImageReader.cxx |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 4d4920899c10cf5d52dd62bd5b84d8e863fde2ea
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jun 14 09:01:01 2023 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Wed Jun 14 11:12:40 2023 +0200

    ofz#59817 Heap-buffer-overflow READ 8
    
    Change-Id: I442d103c7103c0bd88dd7fdefd44c3274a9c80fb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153038
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/vcl/source/filter/png/PngImageReader.cxx 
b/vcl/source/filter/png/PngImageReader.cxx
index ec4e2d421e3c..1cb72bdbe6b5 100644
--- a/vcl/source/filter/png/PngImageReader.cxx
+++ b/vcl/source/filter/png/PngImageReader.cxx
@@ -129,6 +129,8 @@ int handle_unknown_chunk(png_structp png, 
png_unknown_chunkp chunk)
     APNGInfo* aAPNGInfo = static_cast<APNGInfo*>(png_get_user_chunk_ptr(png));
     if (sName == "acTL")
     {
+        if (chunk->size < sizeof(acTLChunk))
+            return -1;
         aAPNGInfo->maACTLChunk = *reinterpret_cast<acTLChunk*>(chunk->data);
         aAPNGInfo->maACTLChunk.num_frames = 
OSL_SWAPDWORD(aAPNGInfo->maACTLChunk.num_frames);
         aAPNGInfo->maACTLChunk.num_plays = 
OSL_SWAPDWORD(aAPNGInfo->maACTLChunk.num_plays);

Reply via email to