Hi Caolan, all,

https://bugs.freedesktop.org/show_bug.cgi?id=36306

In Writer:

- open "File/Wizards/Letter"
- select "Formal Personal letter" radio button
- press "Finish" button

Boom!

This seems to be unrelated to the original report; what I see here is an
infinite recursion that of course ends at some stage - with a SIGSEGV:

#52 0x00007fffe07c2541 in SwGrfNode::LinkStubSwapGraphic
(pThis=0x2348dd0, pCaller=0x2348e78)

at /local/libreoffice/libreoffice-3-4/sw/source/core/graphic/ndgrf.cxx:938
#53 0x00007ffff4804e06 in Link::Call (this=0x2351620, pCaller=0x2348e78)

at 
/local/libreoffice/libreoffice-3-4/solver/340/unxlngx6.pro/inc/tools/link.hxx:140
#54 0x00007ffff4a4c23b in GraphicObject::GetSwapStream (this=0x2348e78)

at /local/libreoffice/libreoffice-3-4/svtools/source/graphic/grfmgr.cxx:409
#55 0x00007ffff4a4e0fd in GraphicObject::ImplAutoSwapIn (this=0x2348e78)

at /local/libreoffice/libreoffice-3-4/svtools/source/graphic/grfmgr.cxx:222
#56 0x00007ffff4a4e383 in GraphicObject::GetGraphic (this=0x2348e78)

at /local/libreoffice/libreoffice-3-4/svtools/source/graphic/grfmgr.cxx:788
#57 0x00007fffe07c01bd in SwGrfNode::_GetStreamForEmbedGrf
(this=0x2348dd0, _refPics=..., _aStrmName=...)

at /local/libreoffice/libreoffice-3-4/sw/source/core/graphic/ndgrf.cxx:809
#58 0x00007fffe07c237e in SwGrfNode::SwapGraphic (this=0x2348dd0,
pGrfObj=0x2348e78)

at /local/libreoffice/libreoffice-3-4/sw/source/core/graphic/ndgrf.cxx:978
#59 0x00007fffe07c2541 in SwGrfNode::LinkStubSwapGraphic
(pThis=0x2348dd0, pCaller=0x2348e78)

at /local/libreoffice/libreoffice-3-4/sw/source/core/graphic/ndgrf.cxx:938
#60 0x00007ffff4804e06 in Link::Call (this=0x2351620, pCaller=0x2348e78)

at 
/local/libreoffice/libreoffice-3-4/solver/340/unxlngx6.pro/inc/tools/link.hxx:140

etc.

The attached patch fixes that for me; it seems to me pointless to
construct the aGraphic object, just to ask its type, and throw it away,
but obviously GetGrfObj() has side-effects [at least the recursion ;-)].
I believe none of the side-effects are needed here, but would be great
to double-check.

Thank you,
Kendy
>From 77c3ef6315304f665e638c26355a3695a5fbf5c9 Mon Sep 17 00:00:00 2001
From: Jan Holesovsky <[email protected]>
Date: Fri, 3 Jun 2011 14:35:38 +0200
Subject: [PATCH] Fix one of the crashes in wizards - fdo#36306

This fixes the following problem:

- open "File/Wizards/Letter"
- select "Formal Personal letter" radio button
- press "Finish" button
---
 sw/source/core/graphic/ndgrf.cxx |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index 6bcbec2..0a11a93 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -806,8 +806,7 @@ SvStream* SwGrfNode::_GetStreamForEmbedGrf(
         {
             xub_StrLen nExtPos = _aStrmName.Search( '.' );
             String aExtStr = _aStrmName.Copy( nExtPos );
-            Graphic aGraphic( GetGrfObj().GetGraphic() );
-            if ( aGraphic.GetType() != GRAPHIC_NONE )
+            if ( GetGrfObj().GetType() != GRAPHIC_NONE )
             {
                 _aStrmName = String( GetGrfObj().GetUniqueID(), RTL_TEXTENCODING_ASCII_US );
                 _aStrmName += aExtStr;
-- 
1.7.4.1

_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to