Monday, January 7, 2019

[11] 错误调用名称近似但返回类型相同的方法

https://www.exploit-db.com/exploits/46071

void AbstractValue::set(Graph& graph, RegisteredStructure structure)
{
    RELEASE_ASSERT(structure);
    
    m_structure = structure;

    m_arrayModes = asArrayModes(structure->indexingType());  <<<<<<<<
    m_type = speculationFromStructure(structure.get());
    m_value = JSValue();
    
    checkConsistency();
    assertIsRegistered(graph);
}

显然,此处代码应该调用IndexingMode而不是indexingType。