1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:48:10 +00:00

LibWeb: Remove early continue in size parsing

Step 5 of parsing was always skipped because step 4 continues.

Running step 5 causes some of the denominators to be 0 and causes
divide by zero error in CSSPixelFraction.

SVG Image with height of 0 will cause divide by zero error when
calculating intrinsic aspect ratio of SVGDecoderImageData.

We also get a divide by zero error in AlignContent::SpaceBetween of the
FlexFormatingContext.

During auto track stretching in GridFormatingContext there is a
possibility for count_of_auto_max_sizing_tracks to stay 0.
This commit is contained in:
Bastian Neumann 2024-01-15 20:26:12 +01:00 committed by Alexander Kalenik
parent e2bc606eeb
commit 7cd489d6aa
6 changed files with 15 additions and 8 deletions

View file

@ -1339,6 +1339,9 @@ void GridFormattingContext::stretch_auto_tracks(GridDimension const dimension)
count_of_auto_max_sizing_tracks++;
}
if (count_of_auto_max_sizing_tracks == 0)
return;
CSSPixels remaining_space = get_free_space(*m_available_space, dimension).to_px_or_zero();
auto remaining_space_to_distribute_per_track = remaining_space / count_of_auto_max_sizing_tracks;
for (auto& track : tracks_and_gaps) {