Skip to content

Commit

Permalink
[CVE-2017-0134 CVE-2017-0137] add conversion checks after calls to Is…
Browse files Browse the repository at this point in the history
…ConcatSpreadable

Signed-off-by: Michael Holman <[email protected]>
  • Loading branch information
MikeHolman committed Mar 16, 2017
1 parent f778167 commit aba0507
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions lib/Runtime/Library/JavascriptArray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3149,7 +3149,13 @@ namespace Js
{
Var aItem = args[idxArg];

if (scriptContext->GetConfig()->IsES6IsConcatSpreadableEnabled() && !JavascriptOperators::IsConcatSpreadable(aItem))
bool concatSpreadable = !scriptContext->GetConfig()->IsES6IsConcatSpreadableEnabled() || JavascriptOperators::IsConcatSpreadable(aItem);
if (!JavascriptNativeIntArray::Is(pDestArray))
{
ConcatArgs<uint>(pDestArray, remoteTypeIds, args, scriptContext, idxArg, idxDest);
return pDestArray;
}
if(!concatSpreadable)
{
pDestArray->SetItem(idxDest, aItem, PropertyOperation_ThrowIfNotExtensible);
idxDest = idxDest + 1;
Expand Down Expand Up @@ -3213,9 +3219,14 @@ namespace Js
{
Var aItem = args[idxArg];

if (scriptContext->GetConfig()->IsES6IsConcatSpreadableEnabled() && !JavascriptOperators::IsConcatSpreadable(aItem))
bool concatSpreadable = !scriptContext->GetConfig()->IsES6IsConcatSpreadableEnabled() || JavascriptOperators::IsConcatSpreadable(aItem);
if (!JavascriptNativeFloatArray::Is(pDestArray))
{
ConcatArgs<uint>(pDestArray, remoteTypeIds, args, scriptContext, idxArg, idxDest);
return pDestArray;
}
if (!concatSpreadable)
{

pDestArray->SetItem(idxDest, aItem, PropertyOperation_ThrowIfNotExtensible);

idxDest = idxDest + 1;
Expand Down

0 comments on commit aba0507

Please sign in to comment.