vcl/source/filter/png/PngImageReader.cxx |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 37b47bca10da480da591c4a5f5369bce59cccab6
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Fri Oct 6 16:29:16 2023 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Sat Oct 7 01:16:43 2023 +0200

    consistently restore the original endianness here
    
    Change-Id: Ia17ef469a3469cca5a2b7eb39b349df78eed6fa9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157657
    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 64ecd2286c14..a949f856646e 100644
--- a/vcl/source/filter/png/PngImageReader.cxx
+++ b/vcl/source/filter/png/PngImageReader.cxx
@@ -283,7 +283,11 @@ sal_uInt32 NumDenToTime(sal_uInt16 nNumerator, sal_uInt16 
nDenominator)
 bool fcTLbeforeIDAT(SvStream& rStream)
 {
     sal_uInt64 nPos = rStream.Tell();
-    comphelper::ScopeGuard aGuard([&rStream, nPos]() { rStream.Seek(nPos); });
+    SvStreamEndian originalEndian = rStream.GetEndian();
+    comphelper::ScopeGuard aGuard([&rStream, nPos, originalEndian] {
+        rStream.Seek(nPos);
+        rStream.SetEndian(originalEndian);
+    });
     // Skip PNG header and IHDR
     rStream.SetEndian(SvStreamEndian::BIG);
     if (!checkSeek(rStream, PNG_SIGNATURE_SIZE + PNG_TYPE_SIZE + PNG_SIZE_SIZE 
+ PNG_IHDR_SIZE
@@ -859,9 +863,10 @@ bool ImportPNG(SvStream& rInputStream, Graphic& rGraphic, 
GraphicFilterImportFla
 bool PngImageReader::isAPng(SvStream& rStream)
 {
     auto nStmPos = rStream.Tell();
-    comphelper::ScopeGuard aGuard([&rStream, &nStmPos] {
+    SvStreamEndian originalEndian = rStream.GetEndian();
+    comphelper::ScopeGuard aGuard([&rStream, nStmPos, originalEndian] {
         rStream.Seek(nStmPos);
-        rStream.SetEndian(SvStreamEndian::LITTLE);
+        rStream.SetEndian(originalEndian);
     });
     if (!isPng(rStream))
         return false;

Reply via email to