Skip to content

Commit febc6a8

Browse files
committed
[MERGE #6328 @boingoing] ChakraCore servicing update for 19-11
Merge pull request #6328 from boingoing:servicing/1911 Addresses the following issues: CVE-2019-1426 CVE-2019-1427 CVE-2019-1428
2 parents 01215c5 + ab9165a commit febc6a8

File tree

5 files changed

+14
-4
lines changed

5 files changed

+14
-4
lines changed

Build/NuGet/.pack-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.11.14
1+
1.11.15

lib/Backend/GlobOptFields.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ GlobOpt::KillLiveElems(IR::IndirOpnd * indirOpnd, IR::Opnd * valueOpnd, BVSparse
250250
IR::RegOpnd *baseOpnd = indirOpnd->GetBaseOpnd();
251251
Value * baseValue = baseOpnd ? this->currentBlock->globOptData.FindValue(baseOpnd->m_sym) : nullptr;
252252
ValueInfo * baseValueInfo = baseValue ? baseValue->GetValueInfo() : nullptr;
253-
if (!baseValueInfo || !baseValueInfo->IsNotNativeArray())
253+
if (!baseValueInfo || !baseValueInfo->IsNotNativeArray() ||
254+
(this->IsLoopPrePass() && !this->IsSafeToTransferInPrepass(baseOpnd->m_sym, baseValueInfo)))
254255
{
255256
if (this->currentBlock->globOptData.maybeWrittenTypeSyms == nullptr)
256257
{

lib/Backend/GlobOptIntBounds.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ void GlobOpt::TrackIntSpecializedAddSubConstant(
803803

804804
// Ensure that the sym is live in the landing pad, and that its value has not changed in an unknown way yet
805805
Value *const landingPadValue = currentBlock->loop->landingPad->globOptData.FindValue(sym);
806-
if(!landingPadValue || srcValueNumber != landingPadValue->GetValueNumber())
806+
if(!landingPadValue || srcValueNumber != landingPadValue->GetValueNumber() || currentBlock->loop->symsDefInLoop->Test(sym->m_id))
807807
{
808808
updateInductionVariableValueNumber = false;
809809
break;

lib/Common/ChakraCoreVersion.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
// ChakraCore version number definitions (used in ChakraCore binary metadata)
1818
#define CHAKRA_CORE_MAJOR_VERSION 1
1919
#define CHAKRA_CORE_MINOR_VERSION 11
20-
#define CHAKRA_CORE_PATCH_VERSION 14
20+
#define CHAKRA_CORE_PATCH_VERSION 15
2121
#define CHAKRA_CORE_VERSION_RELEASE_QFE 0 // Redundant with PATCH_VERSION. Keep this value set to 0.
2222

2323
// -------------

lib/Parser/Parse.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -9506,6 +9506,15 @@ ParseNodeCatch * Parser::ParseCatch()
95069506
GetCurrentBlock()->SetChildCallsEval(true);
95079507
}
95089508

9509+
if (pnodeCatchScope->GetCallsEval())
9510+
{
9511+
pnodeBody->AsParseNodeBlock()->SetCallsEval(true);
9512+
}
9513+
if (pnodeCatchScope->GetChildCallsEval())
9514+
{
9515+
pnodeBody->AsParseNodeBlock()->SetChildCallsEval(true);
9516+
}
9517+
95099518
if (buildAST)
95109519
{
95119520
PopStmt(&stmt);

0 commit comments

Comments
 (0)