Skip to content

Commit

Permalink
[CVE-2018-8355] Edge - Chakra: JIT: Type confusion with localeCompare…
Browse files Browse the repository at this point in the history
… - Google, Inc.
  • Loading branch information
Chakra Automation authored and aneeshdk committed Aug 14, 2018
1 parent 91bb6d6 commit cf3ef50
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 10 deletions.
4 changes: 0 additions & 4 deletions lib/Backend/Inline.cpp
Expand Up @@ -3418,10 +3418,6 @@ Inline::SetupInlineInstrForCallDirect(Js::BuiltinFunction builtInId, IR::Instr*
callInstr->SetSrc1(IR::HelperCallOpnd::New(IR::JnHelperMethod::HelperString_Link, callInstr->m_func));
break;

case Js::BuiltinFunction::JavascriptString_LocaleCompare:
callInstr->SetSrc1(IR::HelperCallOpnd::New(IR::JnHelperMethod::HelperString_LocaleCompare, callInstr->m_func));
break;

case Js::BuiltinFunction::JavascriptString_Match:
callInstr->SetSrc1(IR::HelperCallOpnd::New(IR::JnHelperMethod::HelperString_Match, callInstr->m_func));
break;
Expand Down
1 change: 0 additions & 1 deletion lib/Backend/InliningDecider.cpp
Expand Up @@ -491,7 +491,6 @@ bool InliningDecider::GetBuiltInInfoCommon(
case Js::JavascriptBuiltInFunction::JavascriptArray_Splice:

case Js::JavascriptBuiltInFunction::JavascriptString_Link:
case Js::JavascriptBuiltInFunction::JavascriptString_LocaleCompare:
goto CallDirectCommon;

case Js::JavascriptBuiltInFunction::JavascriptArray_Join:
Expand Down
6 changes: 2 additions & 4 deletions lib/Runtime/Library/JavascriptLibrary.cpp
Expand Up @@ -3277,9 +3277,6 @@ namespace Js
case PropertyIds::link:
return BuiltinFunction::JavascriptString_Link;

case PropertyIds::localeCompare:
return BuiltinFunction::JavascriptString_LocaleCompare;

case PropertyIds::match:
return BuiltinFunction::JavascriptString_Match;

Expand Down Expand Up @@ -3842,7 +3839,8 @@ namespace Js
builtinFuncs[BuiltinFunction::JavascriptString_CharAt] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::charAt, &JavascriptString::EntryInfo::CharAt, 1);
builtinFuncs[BuiltinFunction::JavascriptString_CharCodeAt] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::charCodeAt, &JavascriptString::EntryInfo::CharCodeAt, 1);
builtinFuncs[BuiltinFunction::JavascriptString_Concat] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::concat, &JavascriptString::EntryInfo::Concat, 1);
builtinFuncs[BuiltinFunction::JavascriptString_LocaleCompare] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::localeCompare, &JavascriptString::EntryInfo::LocaleCompare, 1);
// OS#17824730: Don't inline String.prototype.localeCompare because it immediately calls back into Intl.js, which can break implicitCallFlags
/* No inlining String_LocaleCompare */ library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::localeCompare, &JavascriptString::EntryInfo::LocaleCompare, 1);
builtinFuncs[BuiltinFunction::JavascriptString_Match] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::match, &JavascriptString::EntryInfo::Match, 1);
builtinFuncs[BuiltinFunction::JavascriptString_Split] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::split, &JavascriptString::EntryInfo::Split, 2);
builtinFuncs[BuiltinFunction::JavascriptString_Substring] = library->AddFunctionToLibraryObject(stringPrototype, PropertyIds::substring, &JavascriptString::EntryInfo::Substring, 2);
Expand Down
1 change: 0 additions & 1 deletion lib/Runtime/LibraryFunction.h
Expand Up @@ -28,7 +28,6 @@ LIBRARY_FUNCTION(JavascriptString, FromCodePoint, 1, BIF_None
LIBRARY_FUNCTION(JavascriptString, IndexOf, 3, BIF_UseSrc0 | BIF_VariableArgsNumber , JavascriptString::EntryInfo::IndexOf)
LIBRARY_FUNCTION(JavascriptString, LastIndexOf, 3, BIF_UseSrc0 | BIF_VariableArgsNumber , JavascriptString::EntryInfo::LastIndexOf)
LIBRARY_FUNCTION(JavascriptString, Link, 2, BIF_UseSrc0 , JavascriptString::EntryInfo::Link)
LIBRARY_FUNCTION(JavascriptString, LocaleCompare, 2, BIF_UseSrc0 , JavascriptString::EntryInfo::LocaleCompare)
LIBRARY_FUNCTION(JavascriptString, Match, 2, BIF_UseSrc0 | BIF_IgnoreDst , JavascriptString::EntryInfo::Match)
LIBRARY_FUNCTION(JavascriptString, Replace, 3, BIF_UseSrc0 | BIF_IgnoreDst , JavascriptString::EntryInfo::Replace)
LIBRARY_FUNCTION(JavascriptString, Search, 2, BIF_UseSrc0 , JavascriptString::EntryInfo::Search)
Expand Down

0 comments on commit cf3ef50

Please sign in to comment.