[AGG] Only add positive dash lengths and gap lengths It does not make sense for a dash length or gap length to be negative, and a CHECK is failing because of negative dash lengths being added in agg::vcgen_dash::add_dash(). Modify the only caller to make sure the values being passed in are always positive. Bug: 370299908 Change-Id: I027411a6a64e07fd392ca6f8211617cfca0b631f Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/127350 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/agg/cfx_agg_devicedriver.cpp b/core/fxge/agg/cfx_agg_devicedriver.cpp index 9f82167..a306b4c 100644 --- a/core/fxge/agg/cfx_agg_devicedriver.cpp +++ b/core/fxge/agg/cfx_agg_devicedriver.cpp
@@ -316,7 +316,7 @@ } float off = i * 2 + 1 == dash_array.size() ? on : dash_array[i * 2 + 1]; off = std::max(off, 0.0f); - dash.add_dash(on * scale, off * scale); + dash.add_dash(fabs(on * scale), fabs(off * scale)); } dash.dash_start(pGraphState->dash_phase() * scale); using DashStroke = agg::conv_stroke<DashConverter>;
diff --git a/testing/SUPPRESSIONS b/testing/SUPPRESSIONS index 0d845d3..7c837b1 100644 --- a/testing/SUPPRESSIONS +++ b/testing/SUPPRESSIONS
@@ -677,9 +677,6 @@ # TODO(chromium:983289): Remove after associated bug is fixed bug_983289.in * * * agg -# TODO(crbug.com/370299908): Remove after associated bug is fixed -dashed_line_negative_scale.in * * * agg - # TODO(pdfium:1747): Remove after associated bug is fixed jpxdecode.in * * * * jpxdecode_without_bitspercomponent.in * * * *