Null-dereference READ in payments::PaymentRequestState::RecordUseStats |
|||||
Issue descriptionDetailed report: https://clusterfuzz.com/testcase?key=6396634260570112 Fuzzer: mojo_fuzzer Job Type: linux_asan_chrome_mojo Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000000 Crash State: payments::PaymentRequestState::RecordUseStats payments::PaymentRequest::Complete payments::mojom::PaymentRequestStubDispatch::Accept Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_mojo&range=587406:587417 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=6396634260570112 Issue filed automatically. See https://github.com/google/clusterfuzz-tools for more information.
,
Dec 14
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/abbe7c9042d2f5eb43711f02db6f6a2253cb7ad8 ([OnionSoup] Move payment_{app,request}.mojom into blink/public/mojom/). If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
,
Dec 14
+payments experts for more insights. I can not access the clusterfuzz page to see more details, but checked around the code logic and got a question which may be related to this bug: The PaymentRequest::Init() execution may leave |state_| as nullptr at [1] without closing the Mojo binding, through which the other Mojo call PaymentRequest::Complete() may come and run to hit this null |state_|. Furthermore, I checked all other Mojo calls on this binding, some (like PaymentRequest::Show()) are checking |state_|'s nullibity but some (like PaymentRequest::Abort()) are not. It seems to me we need to always do the check. [1] https://cs.chromium.org/chromium/src/components/payments/content/payment_request.cc?rcl=60410c267a70f7f6b6013793a93540499c545adb&l=96
,
Dec 14
I'm making some improvements to that code's resilience in https://crrev.com/c/1370198. Let's wait for that to land and see how the fuzz-bot reacts. I will take this bug on myself, if you don't mind.
,
Dec 14
Ah, Nice, Thank you.
,
Dec 15
ClusterFuzz has detected this issue as fixed in range 616819:616829. Detailed report: https://clusterfuzz.com/testcase?key=6396634260570112 Fuzzer: mojo_fuzzer Job Type: linux_asan_chrome_mojo Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000000 Crash State: payments::PaymentRequestState::RecordUseStats payments::PaymentRequest::Complete payments::mojom::PaymentRequestStubDispatch::Accept Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_mojo&range=587406:587417 Fixed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_mojo&range=616819:616829 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=6396634260570112 See https://github.com/google/clusterfuzz-tools for instructions to reproduce this bug locally. If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
,
Dec 15
ClusterFuzz testcase 6396634260570112 is verified as fixed, so closing issue as verified. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by ClusterFuzz
, Dec 14Labels: Test-Predator-Auto-Components