Changeset 230410 in webkit


Ignore:
Timestamp:
Apr 9, 2018 5:14:22 AM (6 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r229850 - Race Condition in arrayProtoFuncReverse() causes wrong results or crash
https://bugs.webkit.org/show_bug.cgi?id=183901

Reviewed by Keith Miller.

JSTests:

New test.

  • stress/array-reverse-doesnt-clobber.js: Added.

(testArrayReverse):
(createArrayOfArrays):
(createArrayStorage):

Source/JavaScriptCore:

Added write barriers to ensure the reversed contents are properly marked.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncReverse):

Location:
releases/WebKitGTK/webkit-2.20
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.20/JSTests/ChangeLog

    r229271 r230410  
     12018-03-22  Michael Saboff  <msaboff@apple.com>
     2
     3        Race Condition in arrayProtoFuncReverse() causes wrong results or crash
     4        https://bugs.webkit.org/show_bug.cgi?id=183901
     5
     6        Reviewed by Keith Miller.
     7
     8        New test.
     9
     10        * stress/array-reverse-doesnt-clobber.js: Added.
     11        (testArrayReverse):
     12        (createArrayOfArrays):
     13        (createArrayStorage):
     14
    1152018-03-01  Yusuke Suzuki  <utatane.tea@gmail.com>
    216
  • releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore/ChangeLog

    r230397 r230410  
     12018-03-22  Michael Saboff  <msaboff@apple.com>
     2
     3        Race Condition in arrayProtoFuncReverse() causes wrong results or crash
     4        https://bugs.webkit.org/show_bug.cgi?id=183901
     5
     6        Reviewed by Keith Miller.
     7
     8        Added write barriers to ensure the reversed contents are properly marked.
     9
     10        * runtime/ArrayPrototype.cpp:
     11        (JSC::arrayProtoFuncReverse):
     12
    1132018-03-05  Mark Lam  <mark.lam@apple.com>
    214
  • releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore/runtime/ArrayPrototype.cpp

    r225150 r230410  
    838838            break;
    839839        std::reverse(data, data + length);
     840        if (!hasInt32(thisObject->indexingType()))
     841            vm.heap.writeBarrier(thisObject);
    840842        return JSValue::encode(thisObject);
    841843    }
     
    858860        auto data = storage.vector().data();
    859861        std::reverse(data, data + length);
     862        vm.heap.writeBarrier(thisObject);
    860863        return JSValue::encode(thisObject);
    861864    }
Note: See TracChangeset for help on using the changeset viewer.