Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1420)

Unified Diff: Source/core/rendering/RenderGrid.cpp

Issue 493093002: [CSS Grid Layout] Heap-buffer-overflow in std::sort() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Patch for landing Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/fast/css-grid-layout/grid-strict-ordering-crash-2-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderGrid.cpp
diff --git a/Source/core/rendering/RenderGrid.cpp b/Source/core/rendering/RenderGrid.cpp
index e7daaecd24e539d34fa4095dad4fb805159dccc8..5702b762c1473e93f2b1325786fdc59c56b7b57b 100644
--- a/Source/core/rendering/RenderGrid.cpp
+++ b/Source/core/rendering/RenderGrid.cpp
@@ -743,11 +743,13 @@ void RenderGrid::resolveContentBasedTrackSizingFunctionsForItems(GridTrackSizing
static bool sortByGridTrackGrowthPotential(const GridTrack* track1, const GridTrack* track2)
{
- if (track1->m_maxBreadth == infinity)
- return track2->m_maxBreadth == infinity;
+ // This check ensures that we respect the irreflexivity property of the strict weak ordering required by std::sort
+ // (forall x: NOT x < x).
+ if (track1->m_maxBreadth == infinity && track2->m_maxBreadth == infinity)
+ return false;
- if (track2->m_maxBreadth == infinity)
- return true;
+ if (track1->m_maxBreadth == infinity || track2->m_maxBreadth == infinity)
+ return track2->m_maxBreadth == infinity;
return (track1->m_maxBreadth - track1->m_usedBreadth) < (track2->m_maxBreadth - track2->m_usedBreadth);
}
« no previous file with comments | « LayoutTests/fast/css-grid-layout/grid-strict-ordering-crash-2-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698