[webkit-changes] [WebKit/WebKit] f20960: PGM Crash Analysis

Brandon Stewart noreply at github.com
Mon Apr 17 20:33:53 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f209607bc69672c97760e70b3e128cc79d4a704d
      https://github.com/WebKit/WebKit/commit/f209607bc69672c97760e70b3e128cc79d4a704d
  Author: Brandon Stewart <brandonstewart at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    A Source/JavaScriptCore/API/PASReportCrashPrivate.cpp
    A Source/JavaScriptCore/API/PASReportCrashPrivate.h
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/SourcesCocoa.txt
    M Source/bmalloc/CMakeLists.txt
    M Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
    M Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj
    M Source/bmalloc/libpas/src/libpas/pas_enumerate_large_heaps.c
    A Source/bmalloc/libpas/src/libpas/pas_report_crash.c
    A Source/bmalloc/libpas/src/libpas/pas_report_crash.h
    A Source/bmalloc/libpas/src/libpas/pas_report_crash_pgm_report.h

  Log Message:
  -----------
  PGM Crash Analysis
https://bugs.webkit.org/show_bug.cgi?id=255345

Reviewed by Mark Lam, Elliott Williams and David Kilzer.

When a process crashes we will now try to determine whether this crash was caused by
a PGM allocation in WebKit. ReportCrash will call into JSC, which would forward the information
onto libpas. libpas will respond with a report generated from the memory of the now dead process.

libpas will determine whether this was a PGM crash and if so what kind of crash (UAF or OOB).
This information will be added to the local crash log generated.

* Source/JavaScriptCore/API/PASReportCrashPrivate.cpp: Added.
(PASReportCrashExtractResults):
* Source/JavaScriptCore/API/PASReportCrashPrivate.h: Added.
* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/SourcesCocoa.txt:
* Source/bmalloc/CMakeLists.txt:
* Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:
* Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj:
* Source/bmalloc/libpas/src/libpas/pas_enumerate_large_heaps.c:
(pas_hash_map_entry_callback):
* Source/bmalloc/libpas/src/libpas/pas_report_crash.c: Added.
(memory_reader_adapter):
(setup_memory_reader):
(pas_report_crash_extract_pgm_failure):
* Source/bmalloc/libpas/src/libpas/pas_report_crash.h: Added.
* Source/bmalloc/libpas/src/libpas/pas_report_crash_pgm_report.h: Added.

Canonical link: https://commits.webkit.org/263055@main




More information about the webkit-changes mailing list