[Libreoffice-commits] .: 2 commits - sw/source vcl/source

Michael Stahl mst at kemper.freedesktop.org
Fri May 25 14:29:23 PDT 2012


 sw/source/core/layout/flylay.cxx      |    6 ++++++
 vcl/source/glyphs/graphite_layout.cxx |    6 +++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

New commits:
commit b8452a89ceaa9008558b83f3a8b6937d14b7c803
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri May 25 22:43:29 2012 +0200

    fdo#50169: band-aid another crash in GraphiteLayout::expandOrCondense:
    
    error: attempt to subscript container with out-of-bounds index 6,
    but container only holds 6 elements.

diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx
index 4edeb9a..429e700 100644
--- a/vcl/source/glyphs/graphite_layout.cxx
+++ b/vcl/source/glyphs/graphite_layout.cxx
@@ -849,7 +849,11 @@ void GraphiteLayout::expandOrCondense(ImplLayoutArgs &rArgs)
                     nOffset = static_cast<int>(fExtraPerCluster * nCluster);
                     int nCharIndex = mvGlyph2Char[i];
                     assert(nCharIndex > -1);
-                    mvCharDxs[nCharIndex-mnMinCharPos] += nOffset;
+                    if (static_cast<size_t>(nCharIndex-mnMinCharPos)
+                            < mvCharDxs.size())
+                    {
+                        mvCharDxs[nCharIndex-mnMinCharPos] += nOffset;
+                    }
                     // adjust char dxs for rest of characters in cluster
                     while (++nCharIndex - mnMinCharPos < static_cast<int>(mvChar2BaseGlyph.size()))
                     {
commit b6db1e0683c8fac594a606297f16b1fe163ed15b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri May 25 21:57:55 2012 +0200

    rhbz#810644: CalcClipRect: add band-aid
    
    No idea what the problem is, perhaps it'll just crash elsewhere now...

diff --git a/sw/source/core/layout/flylay.cxx b/sw/source/core/layout/flylay.cxx
index b2a9296..c1ae0be 100644
--- a/sw/source/core/layout/flylay.cxx
+++ b/sw/source/core/layout/flylay.cxx
@@ -1027,6 +1027,12 @@ sal_Bool CalcClipRect( const SdrObject *pSdrObj, SwRect &rRect, sal_Bool bMove )
             if ( !bFollowTextFlow || bConsiderWrapOnObjPos )
             {
                 const SwLayoutFrm* pClipFrm = pVertPosOrientFrm->FindPageFrm();
+                if (!pClipFrm)
+                {
+                    OSL_FAIL("!pClipFrm: "
+                            "if you can reproduce this please file a bug");
+                    return false;
+                }
                 rRect = bMove ? pClipFrm->GetUpper()->Frm()
                               : pClipFrm->Frm();
                 // #i26945# - consider that a table, during


More information about the Libreoffice-commits mailing list