[webkit-changes] [WebKit/WebKit] 005922: [JSC] Fix Re-entrancy in ErrorInstance::computeErr...

Ryosuke Niwa noreply at github.com
Sat Mar 16 00:50:16 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 00592216a6f11528ef9843a4a7b11d3f26b0d983
      https://github.com/WebKit/WebKit/commit/00592216a6f11528ef9843a4a7b11d3f26b0d983
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    A JSTests/stress/error-instance.js
    M Source/JavaScriptCore/runtime/ErrorInstance.cpp

  Log Message:
  -----------
  [JSC] Fix Re-entrancy in ErrorInstance::computeErrorInfo
https://bugs.webkit.org/show_bug.cgi?id=267785
rdar://121098660

Reviewed by Yusuke Suzuki.

ErrorInstance::computeErrorInfo computes stack trace string, which may
trigger GC and re-enter to this function with the same ErrorInstance
while computing the stack string. We should defer GC after stacking trace
string is materialized.

* JSTests/stress/error-instance.js: Added.
(main.const.error):
(main):
* Source/JavaScriptCore/runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::computeErrorInfo):

Originally-landed-as: 272448.260 at safari-7618-branch (ade92866440e). rdar://124555384
Canonical link: https://commits.webkit.org/276233@main


  Commit: bd9e9204f3d9e4c8ac2feb1bdf51247fadf1c5bd
      https://github.com/WebKit/WebKit/commit/bd9e9204f3d9e4c8ac2feb1bdf51247fadf1c5bd
  Author: Nisha Jain <nisha_jain at apple.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M Source/WebCore/html/HTMLPlugInImageElement.cpp

  Log Message:
  -----------
  "ASAN_SEGV | WebCore::Style::resolveForDocument; WebCore::Document::styleForElementIgnoringPendingStylesheets; WebCore::Element::resolveComputedStyle"
https://bugs.webkit.org/show_bug.cgi?id=267656
rdar://119187152.

Reviewed by Ryosuke Niwa.

Need to prevent attempt to load a disconnected plugin.
Not adding a new test case as could not make a reliable reproduction of this issue.

* Source/WebCore/html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::requestObject):

Originally-landed-as: 272448.257 at safari-7618-branch (23c6a88ad691). rdar://124555413
Canonical link: https://commits.webkit.org/276234@main


  Commit: cabbec4bbea7104440e03c4964bc297557e80cb4
      https://github.com/WebKit/WebKit/commit/cabbec4bbea7104440e03c4964bc297557e80cb4
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M JSTests/stress/intl-collator.js
    M JSTests/stress/intl-datetimeformat.js
    M JSTests/stress/intl-numberformat.js
    M Source/JavaScriptCore/runtime/IntlCollatorPrototype.cpp
    M Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp
    M Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp

  Log Message:
  -----------
  [JSC] Use dynamic cast in intlCollatorFuncCompare, intlDateTimeFormatFuncFormatDateTime, and intlNumberFormatFuncFormat
https://bugs.webkit.org/show_bug.cgi?id=267725
rdar://121029647

Reviewed by Yusuke Suzuki and Mark Lam.

We should ensure `thisValue` is the desired object. So, should use dynamic
cast instead in intlCollatorFuncCompare, intlDateTimeFormatFuncFormatDateTime,
and intlNumberFormatFuncFormat.

* Source/JavaScriptCore/runtime/IntlCollatorPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):

Originally-landed-as: 272448.254 at safari-7618-branch (5173338bb6f1). rdar://124555823
Canonical link: https://commits.webkit.org/276235@main


  Commit: 14b04872e30ed2b0f5a94320bd6342eaa2dce16e
      https://github.com/WebKit/WebKit/commit/14b04872e30ed2b0f5a94320bd6342eaa2dce16e
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    A LayoutTests/fast/images/image-document-event-handler-crash-expected.txt
    A LayoutTests/fast/images/image-document-event-handler-crash.html
    M Source/WebCore/html/ImageDocument.cpp

  Log Message:
  -----------
  Crash in ImageEventListener::handleEvent
https://bugs.webkit.org/show_bug.cgi?id=267739
rdar://118761846

Reviewed by Chris Dumez.

Use WeakPtr instead of a raw reference.

* LayoutTests/fast/images/image-document-event-handler-crash-expected.txt: Added.
* LayoutTests/fast/images/image-document-event-handler-crash.html: Added.
* Source/WebCore/html/ImageDocument.cpp:
(WebCore::ImageEventListener::handleEvent):

Originally-landed-as: 272448.253 at safari-7618-branch (b417dff04acd). rdar://124555893
Canonical link: https://commits.webkit.org/276236@main


Compare: https://github.com/WebKit/WebKit/compare/cf053c07242e...14b04872e30e

To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list