Changeset 261598 in webkit


Ignore:
Timestamp:
May 12, 2020, 9:35:02 PM (5 years ago)
Author:
mark.lam@apple.com
Message:

catch_mach_exception_raise_state() should fail early if the faulting address is not of interest.
https://bugs.webkit.org/show_bug.cgi?id=211799
<rdar://problem/62939204>

Reviewed by Saam Barati.

  • wtf/threads/Signals.cpp:
Location:
trunk/Source/WTF
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r261590 r261598  
     12020-05-12  Mark Lam  <mark.lam@apple.com>
     2
     3        catch_mach_exception_raise_state() should fail early if the faulting address is not of interest.
     4        https://bugs.webkit.org/show_bug.cgi?id=211799
     5        <rdar://problem/62939204>
     6
     7        Reviewed by Saam Barati.
     8
     9        * wtf/threads/Signals.cpp:
     10
    1112020-05-12  Jer Noble  <jer.noble@apple.com>
    212
  • trunk/Source/WTF/wtf/threads/Signals.cpp

    r261538 r261598  
    205205        ASSERT_UNUSED(dataCount, dataCount == 2);
    206206        info.faultingAddress = reinterpret_cast<void*>(exceptionData[1]);
     207#if CPU(ADDRESS64)
     208        // If the faulting address is out of the range of any valid memory, we would
     209        // not have any reason to handle it. Just let the default handler take care of it.
     210        static constexpr unsigned validAddressBits = OS_CONSTANT(EFFECTIVE_ADDRESS_WIDTH);
     211        static constexpr uintptr_t invalidAddressMask = ~((1ull << validAddressBits) - 1);
     212        if (bitwise_cast<uintptr_t>(info.faultingAddress) & invalidAddressMask)
     213            return KERN_FAILURE;
     214#endif
    207215    }
    208216
Note: See TracChangeset for help on using the changeset viewer.