Title: [213815] releases/WebKitGTK/webkit-2.16/Source/WebCore
Revision
213815
Author
[email protected]
Date
2017-03-13 03:43:19 -0700 (Mon, 13 Mar 2017)

Log Message

Merge r213448 - [GTK] WebProcess from WebKitGtk+ 2.15.x SIGSEVs in GIFLZWContext::doLZW(unsigned char const*, unsigned long) at Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp:303
https://bugs.webkit.org/show_bug.cgi?id=167304

Reviewed by Carlos Garcia Campos.

Add a lock to ensure that the GIFImageReader that we are using for decoding is not deleted while
the decoding thread is using it.

No new tests.

* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::clearFrameBufferCache):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (213814 => 213815)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-03-13 10:42:34 UTC (rev 213814)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-03-13 10:43:19 UTC (rev 213815)
@@ -1,3 +1,18 @@
+2017-03-06  Miguel Gomez  <[email protected]>
+
+        [GTK] WebProcess from WebKitGtk+ 2.15.x SIGSEVs in GIFLZWContext::doLZW(unsigned char const*, unsigned long) at Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp:303
+        https://bugs.webkit.org/show_bug.cgi?id=167304
+
+        Reviewed by Carlos Garcia Campos.
+
+        Add a lock to ensure that the GIFImageReader that we are using for decoding is not deleted while
+        the decoding thread is using it.
+
+        No new tests.
+
+        * platform/image-decoders/gif/GIFImageDecoder.cpp:
+        (WebCore::GIFImageDecoder::clearFrameBufferCache):
+
 2017-03-06  Vanessa Chipirrás Navalón  <[email protected]>
 
         [GStreamer] Adopt nullptr

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp (213814 => 213815)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp	2017-03-13 10:42:34 UTC (rev 213814)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp	2017-03-13 10:43:19 UTC (rev 213815)
@@ -133,6 +133,10 @@
     if (m_frameBufferCache.isEmpty())
         return; // Nothing to do.
 
+    // Lock the decodelock here, as we are going to destroy the GIFImageReader and doing so while
+    // there's an ongoing decode will cause a crash.
+    LockHolder locker(m_decodeLock);
+
     // The "-1" here is tricky.  It does not mean that |clearBeforeFrame| is the
     // last frame we wish to preserve, but rather that we never want to clear
     // the very last frame in the cache: it's empty (so clearing it is
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to