Data race in SkRWBuffer::append |
||||
Issue descriptionDetailed report: https://cluster-fuzz.appspot.com/testcase?key=6645208069963776 Fuzzer: attekett_surku_fuzzer Job Type: linux_tsan_chrome_mp Platform Id: linux Crash Type: Data race WRITE 8 Crash Address: 0x7d800007e008 Crash State: SkRWBuffer::append blink::DeferredImageDecoder::setData blink::ImageSource::setData Minimized Testcase (0.53 Kb): https://cluster-fuzz.appspot.com/download/AMIfv96HNiYgFuTSK10ljIiQyN0EjhxqS46FjzVQlhN7dvAeLtfcE394DNlNbs72ZP-8TmgY-QkqdVLWqjmsn_KVaZgrgGEhcwcRpo4n_I_ReXlTllfamap_WA6qe9eDvkzN71zco7ZvrvN3ndHajl_8zihSAIKWDA Additional requirements: Requires Gestures Filer: ssamanoori See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
,
Apr 21 2016
Yes, this introduced by my change. I have a CL in progress at https://codereview.chromium.org/1871953002 to fix.
,
Apr 22 2016
,
Apr 22 2016
The following revision refers to this bug: https://skia.googlesource.com/skia.git/+/635164028594b4af0086ec85b5e4570dd11091da commit 635164028594b4af0086ec85b5e4570dd11091da Author: scroggo <scroggo@google.com> Date: Fri Apr 22 13:59:01 2016 Fixes for SkRWBuffer Do not call SkBufferHead::validate in SkROBuffer's destructor, which may be called in a separate thread from SkRWBuffer::append. validate() reads SkBufferBlock::fUsed, and append() writes to it, resulting in a data race. Update some comments to be more clear about how it is safe to use these classes across threads. Test the readers in separate threads. In addition, make sure it is safe to create a reader even when no data has been appended. Add tests for this case. Mark a parameter to SkBufferHead::validate() as const, reflecting its use. BUG= chromium:601578 BUG= chromium:605479 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1871953002 Review URL: https://codereview.chromium.org/1871953002 [modify] https://crrev.com/635164028594b4af0086ec85b5e4570dd11091da/include/core/SkRWBuffer.h [modify] https://crrev.com/635164028594b4af0086ec85b5e4570dd11091da/src/core/SkRWBuffer.cpp [modify] https://crrev.com/635164028594b4af0086ec85b5e4570dd11091da/tests/DataRefTest.cpp
,
Apr 22 2016
,
Nov 22 2016
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
||||
►
Sign in to add a comment |
||||
Comment 1 by ssamanoori@chromium.org
, Apr 21 2016Owner: scroggo@chromium.org
Status: Assigned (was: Available)