This is an automated email from the git hooks/post-receive script.
pierov pushed a commit to branch geckoview-99.0.1-11.0-1 in repository tor-browser.
commit a702e3ca00123f48899ec2201b512bc44ba7a097 Author: Andrew Osmond aosmond@mozilla.com AuthorDate: Fri Mar 18 15:22:46 2022 +0000
Bug 1758975 - Ensure GIF color tables are opaque by default. r=tnikkel a=dmeehan
Differential Revision: https://phabricator.services.mozilla.com/D141176 --- image/decoders/nsGIFDecoder2.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/image/decoders/nsGIFDecoder2.cpp b/image/decoders/nsGIFDecoder2.cpp index ebb0b7d7c6905..30ca44fc77bdc 100644 --- a/image/decoders/nsGIFDecoder2.cpp +++ b/image/decoders/nsGIFDecoder2.cpp @@ -91,8 +91,10 @@ nsGIFDecoder2::nsGIFDecoder2(RasterImage* aImage) mGIFOpen(false), mSawTransparency(false), mSwizzleFn(nullptr) { - // Clear out the structure, excluding the arrays. + // Clear out the structure, excluding the arrays. Ensure that the global + // colormap is initialized as opaque. memset(&mGIFStruct, 0, sizeof(mGIFStruct)); + memset(mGIFStruct.global_colormap, 0xFF, sizeof(mGIFStruct.global_colormap));
// Each color table will need to be unpacked. mSwizzleFn = SwizzleRow(SurfaceFormat::R8G8B8, SurfaceFormat::OS_RGBA); @@ -855,6 +857,8 @@ LexerTransitionnsGIFDecoder2::State nsGIFDecoder2::FinishImageDescriptor( mGIFStruct.local_colormap_buffer_size = mColormapSize; mGIFStruct.local_colormap = static_cast<uint32_t*>(moz_xmalloc(mColormapSize)); + // Ensure the local colormap is initialized as opaque. + memset(mGIFStruct.local_colormap, 0xFF, mColormapSize); } else { mColormapSize = mGIFStruct.local_colormap_buffer_size; }