Changeset 253061 in webkit


Ignore:
Timestamp:
Dec 3, 2019 2:07:14 PM (4 years ago)
Author:
chris.reid@sony.com
Message:

Regular expression hangs in Safari only
https://bugs.webkit.org/show_bug.cgi?id=202882
<rdar://problem/56236654>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/regress-202882.js: Added.

Source/WTF:

BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
if multiple large pools are deallocated and a new capacity does not
fit in the deallocated pools. BumpPointerPool should try using
more pools if the next one isn't large enough.

  • wtf/BumpPointerAllocator.h:

(WTF::BumpPointerPool::ensureCapacityCrossPool):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/BumpPointerAllocator.cpp: Added.
Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r253026 r253061  
     12019-12-03  Christopher Reid  <chris.reid@sony.com>
     2
     3        Regular expression hangs in Safari only
     4        https://bugs.webkit.org/show_bug.cgi?id=202882
     5        <rdar://problem/56236654>
     6
     7        Reviewed by Yusuke Suzuki.
     8
     9        * stress/regress-202882.js: Added.
     10
    1112019-12-02  Saam Barati  <sbarati@apple.com>
    212
  • trunk/Source/WTF/ChangeLog

    r252936 r253061  
     12019-12-03  Christopher Reid  <chris.reid@sony.com>
     2
     3        Regular expression hangs in Safari only
     4        https://bugs.webkit.org/show_bug.cgi?id=202882
     5        <rdar://problem/56236654>
     6
     7        Reviewed by Yusuke Suzuki.
     8
     9        BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
     10        if multiple large pools are deallocated and a new capacity does not
     11        fit in the deallocated pools. BumpPointerPool should try using
     12        more pools if the next one isn't large enough.
     13
     14        * wtf/BumpPointerAllocator.h:
     15        (WTF::BumpPointerPool::ensureCapacityCrossPool):
     16
    1172019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>
    218
  • trunk/Source/WTF/wtf/BumpPointerAllocator.h

    r248546 r253061  
    167167            if (allocationEnd <= static_cast<void*>(pool))
    168168                return pool;
     169
     170            previousPool = pool;
     171            pool = pool->m_next;
    169172        }
    170173    }
  • trunk/Tools/ChangeLog

    r253060 r253061  
     12019-12-03  Christopher Reid  <chris.reid@sony.com>
     2
     3        Regular expression hangs in Safari only
     4        https://bugs.webkit.org/show_bug.cgi?id=202882
     5        <rdar://problem/56236654>
     6
     7        Reviewed by Yusuke Suzuki.
     8
     9        * TestWebKitAPI/CMakeLists.txt:
     10        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     11        * TestWebKitAPI/Tests/WTF/BumpPointerAllocator.cpp: Added.
     12
    1132019-12-03  Jonathan Bedard  <jbedard@apple.com>
    214
  • trunk/Tools/TestWebKitAPI/CMakeLists.txt

    r251915 r253061  
    2828    Tests/WTF/AtomString.cpp
    2929    Tests/WTF/BloomFilter.cpp
     30    Tests/WTF/BumpPointerAllocator.cpp
    3031    Tests/WTF/CString.cpp
    3132    Tests/WTF/CheckedArithmeticOperations.cpp
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r253025 r253061  
    4747/* Begin PBXBuildFile section */
    4848                041A1E34216FFDBC00789E0A /* PublicSuffix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 041A1E33216FFDBC00789E0A /* PublicSuffix.cpp */; };
     49                04DB2396235E43EC00328F17 /* BumpPointerAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0451A5A6235E438E009DF945 /* BumpPointerAllocator.cpp */; };
    4950                0711DF52226A95FC003DD2F7 /* AVFoundationSoftLinkTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0711DF51226A95FB003DD2F7 /* AVFoundationSoftLinkTest.mm */; };
    5051                07492B3B1DF8B14C00633DE1 /* EnumerateMediaDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07492B3A1DF8AE2D00633DE1 /* EnumerateMediaDevices.cpp */; };
     
    14971498                00CD9F6215BE312C002DA2CE /* BackForwardList.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BackForwardList.mm; sourceTree = "<group>"; };
    14981499                041A1E33216FFDBC00789E0A /* PublicSuffix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PublicSuffix.cpp; sourceTree = "<group>"; };
     1500                0451A5A6235E438E009DF945 /* BumpPointerAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BumpPointerAllocator.cpp; sourceTree = "<group>"; };
    14991501                0711DF51226A95FB003DD2F7 /* AVFoundationSoftLinkTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AVFoundationSoftLinkTest.mm; sourceTree = "<group>"; };
    15001502                0746645722FF62D000E3451A /* AccessibilityTestSupportProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilityTestSupportProtocol.h; sourceTree = "<group>"; };
     
    37123714                                26F1B44215CA434F00D1E4BF /* AtomString.cpp */,
    37133715                                E40019301ACE9B5C001B0A2A /* BloomFilter.cpp */,
     3716                                0451A5A6235E438E009DF945 /* BumpPointerAllocator.cpp */,
    37143717                                A7A966DA140ECCC8005EF9B4 /* CheckedArithmeticOperations.cpp */,
    37153718                                0F30CB5B1FCE1792004B5323 /* ConcurrentPtrHashSet.cpp */,
     
    44064409                                1ADAD1501D77A9F600212586 /* BlockPtr.mm in Sources */,
    44074410                                7C83DE9C1D0A590C00FEBCF3 /* BloomFilter.cpp in Sources */,
     4411                                04DB2396235E43EC00328F17 /* BumpPointerAllocator.cpp in Sources */,
    44084412                                7C83DEA01D0A590C00FEBCF3 /* CheckedArithmeticOperations.cpp in Sources */,
    44094413                                0F30CB5C1FCE1796004B5323 /* ConcurrentPtrHashSet.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.