<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>202624</bug_id>
          
          <creation_ts>2019-10-06 23:21:28 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: this-&gt;prototypeChainMayInterceptStoreTo(vm, propertyName) || obj == this, with __proto__</short_desc>
          <delta_ts>2020-05-05 17:06:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>200386</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="rain">hexiaoyu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>nth10sd</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577291</commentid>
    <comment_count>0</comment_count>
      <attachid>380307</attachid>
    <who name="rain">hexiaoyu</who>
    <bug_when>2019-10-06 23:21:28 -0700</bug_when>
    <thetext>Created attachment 380307
poc

This is not a dupe of 202342
=======================================
ASSERTION FAILED: this-&gt;prototypeChainMayInterceptStoreTo(vm, propertyName) || obj == this
../../Source/JavaScriptCore/runtime/JSObject.cpp(797) : bool JSC::JSObject::putInlineSlow(JSC::ExecState *, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot &amp;)
Aborted (core dumped)

=======================================

OS: ubuntu 16.04

Configuration:

--jsc-only --debug --cmakeargs=&quot;-DENABLE_STATIC_JSC=ON -DCMAKE_C_COMPILER=&apos;/usr/bin/clang&apos; -DCMAKE_CXX_COMPILER=&apos;/usr/bin/clang++&apos; -DCMAKE_CXX_FLAGS=&apos;-fsanitize-coverage=trace-pc-guard -O3 -lrt&apos;

git log:
=======================================
commit 9188d0222391c558277ed74d037b7c9ef5719405
Author: commit-queue@webkit.org &lt;commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
commit 9188d0222391c558277ed74d037b7c9ef5719405
Author: commit-queue@webkit.org &lt;commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
Date:   Wed May 29 06:00:40 2019 +0000

    [MSE][GStreamer] update the readyState correctly in MediaPlayerPrivateGStreamerMSE
    https://bugs.webkit.org/show_bug.cgi?id=197834
    
    Patch by Yacine Bandou &lt;yacine.bandou@softathome.com&gt; on 2019-05-28
    Reviewed by Xabier Rodriguez-Calvar.
====================
pass parameters：
jsc poc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577366</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-07 09:09:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/56038268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643970</commentid>
    <comment_count>2</comment_count>
    <who name="Gary Kwong [:gkw] [:nth10sd]">nth10sd</who>
    <bug_when>2020-04-21 12:36:57 -0700</bug_when>
    <thetext>I made some modifications to Robobisect v0.0.1 (available at https://github.com/nth10sd/robobisect) to find out the likely regressor (when the poc started crashing) and likely fix:

=====================
| Robobisect report |
=====================

Likely regressor:

commit 043245b0ed35b36e177dc7f96df8deb6cdbb5465
Author: mcatanzaro &lt;/snip&gt;
Date:   Sun Nov 25 18:22:30 2018 +0000

    CRASH() should call abort() except on Darwin and in developer builds
    https://bugs.webkit.org/show_bug.cgi?id=184408
    
    Reviewed by Daniel Bates.
    
    &lt;/snip&gt;
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238478 268f45cc-cd09-0410-ab3c-d52691b4dbfc

=====================

Likely fix:

commit 17b927ea0dedded5de8356b366a60bf70c9bff45
Author: sbarati &lt;/snip&gt;
Date:   Mon Sep 16 19:32:39 2019 +0000

    JSObject::putInlineSlow should not ignore &quot;__proto__&quot; for Proxy
    https://bugs.webkit.org/show_bug.cgi?id=200386
    &lt;rdar://problem/53854946&gt;
    
    Reviewed by Yusuke Suzuki.
    
    &lt;/snip&gt;
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249911 268f45cc-cd09-0410-ab3c-d52691b4dbfc

=====================


Saam/Yusuke, is bug 200386 a likely fix for this bug? Or is this possibly a dupe of bug 200386?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643971</commentid>
    <comment_count>3</comment_count>
    <who name="Gary Kwong [:gkw] [:nth10sd]">nth10sd</who>
    <bug_when>2020-04-21 12:43:42 -0700</bug_when>
    <thetext>Backtrace with git commit 043245b0ed35b36e177dc7f96df8deb6cdbb5465:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff6469801 in __GI_abort () at abort.c:79
#2  0x000055555788bc1b in JSC::JSObject::putInlineSlow (this=0x7fffb35c8280, exec=0x7fffffffcc80, propertyName=..., value=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSObject.cpp:769
#3  0x000055555707e39a in JSC::JSObject::putInlineForJSObject (cell=0x7fffb35c8280, exec=0x7fffffffcc80, propertyName=..., value=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSObjectInlines.h:245
#4  0x000055555707a16e in JSC::JSCell::putInline (this=0x7fffb35c8280, exec=0x7fffffffcc80, propertyName=..., value=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSCellInlines.h:403
#5  0x000055555707d597 in JSC::JSValue::putInline (this=0x7fffffffca60, exec=0x7fffffffcc80, propertyName=..., value=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:951
#6  0x00005555575f2ac9 in JSC::LLInt::llint_slow_path_put_by_id (exec=0x7fffffffcc80, pc=0x7ffff3f8508b) at ../../Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:851
#7  0x00005555575e151a in llint_entry () at DerivedSources/ForwardingHeaders/wtf/CagedPtr.h:50
#8  0x00005555575ebab6 in llint_entry () at DerivedSources/ForwardingHeaders/wtf/CagedPtr.h:50
#9  0x00005555575da4e2 in vmEntryToJavaScript () at DerivedSources/ForwardingHeaders/wtf/CagedPtr.h:50
#10 0x0000555557509bc0 in JSC::JITCode::execute (this=0x7ffff3f8a000, vm=0x7fffb3d00000, protoCallFrame=0x7fffffffcf30) at ../../Source/JavaScriptCore/jit/JITCodeInlines.h:38
#11 0x000055555750075d in JSC::Interpreter::executeProgram (this=0x7ffff3ffd270, source=..., callFrame=0x7fffb35e0048, thisObj=0x7fffb35a8080)
    at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:832
#12 0x0000555557796661 in JSC::evaluate (exec=0x7fffb35e0048, source=..., thisValue=..., returnedException=...) at ../../Source/JavaScriptCore/runtime/Completion.cpp:106
#13 0x0000555556bcf037 in runWithOptions (globalObject=0x7fffb35e0000, options=..., success=@0x7fffffffdaaa: true) at ../../Source/JavaScriptCore/jsc.cpp:2460
#14 0x0000555556bd017e in &lt;lambda(JSC::VM&amp;, GlobalObject*, bool&amp;)&gt;::operator()(JSC::VM &amp;, GlobalObject *, bool &amp;) const (__closure=0x7fffffffdc18, globalObject=0x7fffb35e0000, 
    success=@0x7fffffffdaaa: true) at ../../Source/JavaScriptCore/jsc.cpp:2864
#15 0x0000555556bd184d in runJSC&lt;jscmain(int, char**)::&lt;lambda(JSC::VM&amp;, GlobalObject*, bool&amp;)&gt; &gt;(CommandLine, bool, const &lt;lambda(JSC::VM&amp;, GlobalObject*, bool&amp;)&gt; &amp;) (options=..., 
    isWorker=false, func=...) at ../../Source/JavaScriptCore/jsc.cpp:2765
#16 0x0000555556bd0242 in jscmain (argc=2, argv=0x7fffffffdde8) at ../../Source/JavaScriptCore/jsc.cpp:2865
#17 0x0000555556bcdb26 in main (argc=2, argv=0x7fffffffdde8) at ../../Source/JavaScriptCore/jsc.cpp:2286

=====

On a recent git commit eb42a8967d53ebb95bd59b6d89662ac7fdf95a8b, the testcase only shows:

Exception: SyntaxError: Invalid character &apos;\u007f&apos;

instead of showing the assertion failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643972</commentid>
    <comment_count>4</comment_count>
    <who name="Gary Kwong [:gkw] [:nth10sd]">nth10sd</who>
    <bug_when>2020-04-21 12:44:34 -0700</bug_when>
    <thetext>The bug title can perhaps be changed to:

ASSERTION FAILED: this-&gt;prototypeChainMayInterceptStoreTo(vm, propertyName) || obj == this, with __proto__

but I don&apos;t yet have sufficient Bugzilla permissions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647125</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-04-29 13:15:40 -0700</bug_when>
    <thetext>Dupe of this?  Bug 200386: JSObject::putInlineSlow should not ignore &quot;__proto__&quot; for Proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649437</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-05 17:06:12 -0700</bug_when>
    <thetext>Yes, this is dupe of bug 200386.
Put operation with __proto__ traverses Proxy&apos;s [[Prototype]] instead of calling Proxy&apos;s [[Put]], then state of Proxy&apos;s Structure and state of Structure chain got from Proxy&apos;s [[Prototype]] can be different, and assertion hits.

*** This bug has been marked as a duplicate of bug 200386 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>380307</attachid>
            <date>2019-10-06 23:21:28 -0700</date>
            <delta_ts>2019-10-06 23:21:28 -0700</delta_ts>
            <desc>poc</desc>
            <filename>4.js</filename>
            <type>text/javascript</type>
            <size>383</size>
            <attacher name="rain">hexiaoyu</attacher>
            
              <data encoding="base64">ZnVuY3Rpb24gbWFpbigpIHsKY29uc3QgdjEgPSBbMTMuMzcsMTMuMzcsMTMuMzddOwpjb25zdCB2
MyA9IFt2MSwxMzM3LDEzLjM3XTsKY29uc3QgdjQgPSB7Y29uc3RydWN0b3I6MTMzN307CmNvbnN0
IHY2ID0ge2dldFByb3RvdHlwZU9mOkFycmF5fTsKY29uc3QgdjggPSBuZXcgUHJveHkodjMsdjYp
Owpmb3IgKGxldCB2MTIgPSAwOyB2MTIgPCAxMDA7IHYxMisrKSB7CiAgICB2NC5fX3Byb3RvX18g
PSB2ODsKICAgIGNvbnN0IHYxNSA9IGFyZ3VtZW50cy5fX3Byb3RvX187CiAgICBjb25zdCB2MTcg
PSBuZXcgUHJveHkodjE1LFJlZmxlY3QpOwogICAgY29uc3QgdjE5ID0gT2JqZWN0LnNlYWwodjE3
KTsKfQp9Cm5vREZHKG1haW4pOwpub0ZUTChtYWluKTsKbWFpbigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>