From fdc91f7493171ae600ecb293ad380df5fa77a277 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 21 Jan 2019 10:23:40 +0000 Subject: ofz#9707 avoid timeout on excessive EndGroups without matching BeginGroups MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I6b660ba86ba639935da509623f1041b6fc1debc0 Reviewed-on: https://gerrit.libreoffice.org/66669 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- filter/source/graphicfilter/icgm/actimpr.cxx | 7 ++++--- sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm | Bin 0 -> 25558 bytes 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm diff --git a/filter/source/graphicfilter/icgm/actimpr.cxx b/filter/source/graphicfilter/icgm/actimpr.cxx index 4d09031925ef..3415656a35f3 100644 --- a/filter/source/graphicfilter/icgm/actimpr.cxx +++ b/filter/source/graphicfilter/icgm/actimpr.cxx @@ -395,14 +395,15 @@ void CGMImpressOutAct::BeginGroup() { maGroupLevel[mnGroupLevel] = maXShapes->getCount(); } - mnGroupLevel++; + ++mnGroupLevel; mnGroupActCount = mpCGM->mnActCount; } void CGMImpressOutAct::EndGroup() { - if ( mnGroupLevel ) // preserve overflow - mnGroupLevel--; + if (!mnGroupLevel) + return; + --mnGroupLevel; if ( mnGroupLevel < CGM_OUTACT_MAX_GROUP_LEVEL ) { sal_uInt32 nFirstIndex = maGroupLevel[mnGroupLevel]; diff --git a/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm b/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm new file mode 100644 index 000000000000..9695f9bbabce Binary files /dev/null and b/sd/qa/unit/data/cgm/pass/ofz9707-slow-1.cgm differ -- cgit