<?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>250931</bug_id>
          
          <creation_ts>2023-01-21 02:21:49 -0800</creation_ts>
          <short_desc>Parser&apos;s PropertyNode should never be given an Identifier with a null impl.</short_desc>
          <delta_ts>2023-01-22 08:45:22 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Samuel Groß">saelo</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yijia_huang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1927086</commentid>
    <comment_count>0</comment_count>
    <who name="Samuel Groß">saelo</who>
    <bug_when>2023-01-21 02:21:49 -0800</bug_when>
    <thetext>The following testcase triggers an assertion failure in debug builds of JSC from current HEAD (and a nullptr deref in release builds):

    class C0 {
        static get c() {
        }
        static {
        }
    }
    // CRASH INFO
    // ==========
    // TERMSIG: 6
    // STDERR:
    // ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
    // /home/builder/webkit/FuzzBuild/Debug/WTF/Headers/wtf/HashTable.h(659) : void WTF::HashTable&lt;WTF::UniquedStringImpl *, WTF::KeyValuePair&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;&gt;&gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;, JSC::IdentifierRepHash&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl *&gt;&gt;::checkKey(const T &amp;) [Key = WTF::UniquedStringImpl *, Value = WTF::KeyValuePair&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;&gt;, Extractor = WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;&gt;&gt;, HashFunctions = JSC::IdentifierRepHash, Traits = WTF::HashMap&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;, JSC::IdentifierRepHash&gt;::KeyValuePairTraits, KeyTraits = WTF::HashTraits&lt;WTF::UniquedStringImpl *&gt;, HashTranslator = WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::UniquedStringImpl *, std::pair&lt;JSC::PropertyNode *, JSC::PropertyNode *&gt;, JSC::IdentifierRepHash&gt;::KeyValuePairTraits, JSC::IdentifierRepHash&gt;, T = WTF::UniquedStringImpl *]
    // STDOUT:
    // ARGS: ./jsc/jsc --validateOptions=true --thresholdForJITSoon=10 --thresholdForJITAfterWarmUp=10 --thresholdForOptimizeAfterWarmUp=100 --thresholdForOptimizeAfterLongWarmUp=100 --thresholdForOptimizeSoon=100 --thresholdForFTLOptimizeAfterWarmUp=1000 --thresholdForFTLOptimizeSoon=1000 --validateBCE=true --reprl
    // EXECUTION TIME: 26 ms

I&apos;m not sure if this assertion has any security implications (other than a nullptr deref) so I&apos;m filing this as a security issue as a precaution. I also don&apos;t believe that Safari is currently affected (Version 16.2) as it doesn&apos;t yet seem to support class static initializers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927087</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-21 02:22:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/104507750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927104</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2023-01-21 07:36:08 -0800</bug_when>
    <thetext>I&apos;m pretty sure that the symptom here is indeed just a null dereference without deeper exploitable properties. When the empty value is used to look in the hash table, the code could incorrectly treat the hash table slot as non-empty, but next the key comparison will be done which will immediately result in a null dereference.

If I could see the rest of the backtrace I could quickly form more of an opinion on what the mistake is that leads to this. It&apos;s probably super-easy to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927105</commentid>
    <comment_count>3</comment_count>
    <who name="Samuel Groß">saelo</who>
    <bug_when>2023-01-21 07:40:14 -0800</bug_when>
    <thetext>Here&apos;s the full backtrace at the time of the assertion failure:

    #0  __pthread_kill_implementation (threadid=&lt;optimized out&gt;, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    #1  0x00007ffff18add2f in __pthread_kill_internal (signo=6, threadid=&lt;optimized out&gt;) at ./nptl/pthread_kill.c:78
    #2  0x00007ffff185eef2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    #3  0x00007ffff1849472 in __GI_abort () at ./stdlib/abort.c:79
    #4  0x00007ffff539a12b in WTFCrashWithInfo () at WTF/Headers/wtf/Assertions.h:754
    #5  0x00007ffff5badc6d in WTF::HashTable&lt;WTF::UniquedStringImpl*, WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt; &gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt; &gt;::checkKey&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, JSC::IdentifierRepHash&gt;, WTF::UniquedStringImpl*&gt; (this=0x7fffffffae80, 
        key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashTable.h:659
    #6  0x00007ffff5baefb1 in WTF::HashTable&lt;WTF::UniquedStringImpl*, WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt; &gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt; &gt;::inlineLookup&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, JSC::IdentifierRepHash&gt;, WTF::UniquedStringImpl*&gt; (this=0x7fffffffae80, 
        key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashTable.h:681
    #7  0x00007ffff5baef7d in WTF::HashTable&lt;WTF::UniquedStringImpl*, WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt; &gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt; &gt;::lookup&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, JSC::IdentifierRepHash&gt;, WTF::UniquedStringImpl*&gt; (this=0x7fffffffae80, 
        key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashTable.h:673
    #8  0x00007ffff5baef38 in WTF::HashTable&lt;WTF::UniquedStringImpl*, WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt; &gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt; &gt;::contains&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, JSC::IdentifierRepHash&gt;, WTF::UniquedStringImpl*&gt; (this=0x7fffffffae80, 
        key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashTable.h:1053
    #9  0x00007ffff5baeeed in WTF::HashTable&lt;WTF::UniquedStringImpl*, WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt; &gt;, JSC::IdentifierRepHash, WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt; &gt;::contains (this=0x7fffffffae80, key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashTable.h:500
    #10 0x00007ffff5b09cfd in WTF::HashMap&lt;WTF::UniquedStringImpl*, std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt;, JSC::IdentifierRepHash, WTF::HashTraits&lt;WTF::UniquedStringImpl*&gt;, WTF::HashTraits&lt;std::pair&lt;JSC::PropertyNode*, JSC::PropertyNode*&gt; &gt;, WTF::HashTableTraits&gt;::contains (this=0x7fffffffae80, key=@0x7fffffffae60: 0x0) at WTF/Headers/wtf/HashMap.h:323
    #11 0x00007ffff5ac67aa in JSC::PropertyListNode::emitBytecode (this=0x7fffa54a20e8, generator=..., dstOrConstructor=0x7fffe700c3ac, prototype=0x7fffe700c3b8, instanceFieldLocations=0x7fffffffb3b8, staticFieldLocations=0x7fffffffb3c8)
        at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:681
    #12 0x00007ffff5b0cb70 in JSC::BytecodeGenerator::emitDefineClassElements (this=0x7fffe7045e80, n=0x7fffa54a20e8, constructor=0x7fffe700c3ac, prototype=0x7fffe700c3b8, instanceFieldLocations=..., staticFieldLocations=...)
        at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:538
    #13 0x00007ffff5aeda81 in JSC::ClassExprNode::emitBytecode (this=0x7fffa54a21e8, generator=..., dst=0x0) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:5220
    #14 0x00007ffff5b0b579 in JSC::BytecodeGenerator::emitNodeInTailPosition (this=0x7fffe7045e80, dst=0x0, n=0x7fffa54a21e8) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:518
    #15 0x00007ffff5afbc75 in JSC::BytecodeGenerator::emitNode (this=0x7fffe7045e80, dst=0x0, n=0x7fffa54a21e8) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:507
    #16 0x00007ffff5ae4346 in JSC::AssignResolveNode::emitBytecode (this=0x7fffa54a22d8, generator=..., dst=0x0) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3675
    #17 0x00007ffff5b0b579 in JSC::BytecodeGenerator::emitNodeInTailPosition (this=0x7fffe7045e80, dst=0x0, n=0x7fffa54a22d8) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:518
    #18 0x00007ffff5afbc75 in JSC::BytecodeGenerator::emitNode (this=0x7fffe7045e80, dst=0x0, n=0x7fffa54a22d8) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:507
    #19 0x00007ffff5b090a1 in JSC::BytecodeGenerator::emitNode (this=0x7fffe7045e80, n=0x7fffa54a22d8) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:523
    #20 0x00007ffff5aecfe5 in JSC::ClassDeclNode::emitBytecode (this=0x7fffa54a2330, generator=...) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:5136
    #21 0x00007ffff5b0ba85 in JSC::BytecodeGenerator::emitNodeInTailPosition (this=0x7fffe7045e80, dst=0x7fffe700c388, n=0x7fffa54a2330) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:486
    #22 0x00007ffff5b0b89c in JSC::SourceElements::emitBytecode (this=0x7fffa54a2000, generator=..., dst=0x7fffe700c388) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3874
    #23 0x00007ffff5b0c207 in JSC::ScopeNode::emitStatementsBytecode (this=0x7fffe703ce80, generator=..., dst=0x7fffe700c388) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:4810
    #24 0x00007ffff5aeb0b8 in JSC::emitProgramNodeBytecode (generator=..., scopeNode=...) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:4820
    #25 0x00007ffff5aeafd1 in JSC::ProgramNode::emitBytecode (this=0x7fffe703ce80, generator=...) at Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:4830
    #26 0x00007ffff5aa5824 in JSC::BytecodeGenerator::generate (this=0x7fffe7045e80, size=@0x7fffffffbcdc: 32767) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:244
    #27 0x00007ffff6b0cf43 in JSC::BytecodeGenerator::generate&lt;JSC::ProgramNode, JSC::UnlinkedProgramCodeBlock&gt; (vm=..., node=0x7fffe703ce80, sourceCode=..., unlinkedCodeBlock=0x7fffe707d0e8, codeGenerationMode=..., parentScopeTDZVariables=..., 
        privateNameEnvironment=0x0) at Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:389
    #28 0x00007ffff6b0eec7 in JSC::generateUnlinkedCodeBlockImpl&lt;JSC::UnlinkedProgramCodeBlock, JSC::ProgramExecutable&gt; (vm=..., source=..., strictMode=JSC::JSParserStrictMode::NotStrict, scriptMode=JSC::JSParserScriptMode::Classic, codeGenerationMode=..., 
        error=..., evalContextType=JSC::EvalContextType::None, derivedContextType=JSC::DerivedContextType::None, isArrowFunctionContext=false, variablesUnderTDZ=0x0, privateNameEnvironment=0x0, executable=0x7fffe7038308)
        at Source/JavaScriptCore/runtime/CodeCache.cpp:111
    #29 0x00007ffff6b0e109 in JSC::generateUnlinkedCodeBlock&lt;JSC::UnlinkedProgramCodeBlock, JSC::ProgramExecutable&gt; (vm=..., executable=0x7fffe7038308, source=..., strictMode=JSC::JSParserStrictMode::NotStrict, scriptMode=JSC::JSParserScriptMode::Classic, 
        codeGenerationMode=..., error=..., evalContextType=JSC::EvalContextType::None, variablesUnderTDZ=0x0, privateNameEnvironment=0x0) at Source/JavaScriptCore/runtime/CodeCache.cpp:122
    #30 0x00007ffff6b02373 in JSC::CodeCache::getUnlinkedGlobalCodeBlock&lt;JSC::UnlinkedProgramCodeBlock, JSC::ProgramExecutable&gt; (this=0x7fffe70242c0, vm=..., executable=0x7fffe7038308, source=..., strictMode=JSC::JSParserStrictMode::NotStrict, 
        scriptMode=JSC::JSParserScriptMode::Classic, codeGenerationMode=..., error=..., evalContextType=JSC::EvalContextType::None) at Source/JavaScriptCore/runtime/CodeCache.cpp:176
    #31 0x00007ffff6aff932 in JSC::CodeCache::getUnlinkedProgramCodeBlock (this=0x7fffe70242c0, vm=..., executable=0x7fffe7038308, source=..., strictMode=JSC::JSParserStrictMode::NotStrict, codeGenerationMode=..., error=...)
        at Source/JavaScriptCore/runtime/CodeCache.cpp:191
    #32 0x00007ffff6eef790 in JSC::ProgramExecutable::initializeGlobalProperties (this=0x7fffe7038308, vm=..., globalObject=0x7fffa541a068, scope=0x7fffe7020428)
        at Source/JavaScriptCore/runtime/ProgramExecutable.cpp:79
    #33 0x00007ffff6754213 in JSC::Interpreter::executeProgram (this=0x7fffa500c8c0, source=..., thisObj=0x7fffe7000fa8) at Source/JavaScriptCore/interpreter/Interpreter.cpp:993
    --Type &lt;RET&gt; for more, q to quit, c to continue without paging--
    #34 0x00007ffff6b2b875 in JSC::evaluate (globalObject=0x7fffa541a068, source=..., thisValue=..., returnedException=...) at Source/JavaScriptCore/runtime/Completion.cpp:137
    #35 0x00005555555d8347 in runWithOptions (globalObject=0x7fffa541a068, options=..., success=@0x7fffffffd663: true) at Source/JavaScriptCore/jsc.cpp:3593
    #36 0x00005555555bdfac in jscmain(int, char**)::$_11::operator()(JSC::VM&amp;, GlobalObject*, bool&amp;) const (this=0x7fffffffd730, vm=..., globalObject=0x7fffa541a068, success=@0x7fffffffd663: true)
        at Source/JavaScriptCore/jsc.cpp:4218
    #37 0x00005555555ba844 in runJSC&lt;jscmain(int, char**)::$_11&gt;(CommandLine const&amp;, bool, jscmain(int, char**)::$_11 const&amp;) (options=..., isWorker=false, func=...) at Source/JavaScriptCore/jsc.cpp:4018
    #38 0x00005555555b8ca3 in jscmain (argc=2, argv=0x7fffffffd8b8) at Source/JavaScriptCore/jsc.cpp:4211
    #39 0x00005555555b8a4d in main (argc=2, argv=0x7fffffffd8b8) at Source/JavaScriptCore/jsc.cpp:3360


Let me know if the backtrace for the nullptr deref crash in release builds would be useful as well!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927192</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2023-01-21 19:32:29 -0800</bug_when>
    <thetext>This issue is purely due to a bug of using a null string as an Identifier.  As a result, it triggers that ASSERT failure.  On a Release build, this is purely a null dereference.  There is no security issue here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927193</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2023-01-21 19:44:17 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/8938</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927284</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-01-22 08:45:20 -0800</bug_when>
    <thetext>Committed 259187@main (90bd38013bce): &lt;https://commits.webkit.org/259187@main&gt;

Reviewed commits have been landed. Closing PR #8938 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>