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;