[libreoffice/f15] Resolves: rhbz#710556 don't crash on missing graphics on pptx export

Caolan McNamara caolanm at fedoraproject.org
Tue Jun 7 11:46:12 UTC 2011


commit cb4695c1ab74f6baf3cc2d1f2ff7e82923cd5079
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Jun 7 12:45:54 2011 +0100

    Resolves: rhbz#710556 don't crash on missing graphics on pptx export

 ...bz-710556-don-t-crash-on-missing-graphics.patch |  111 ++++++++++++++++++++
 libreoffice.spec                                   |    5 +-
 2 files changed, 115 insertions(+), 1 deletions(-)
---
diff --git a/0001-Resolves-rhbz-710556-don-t-crash-on-missing-graphics.patch b/0001-Resolves-rhbz-710556-don-t-crash-on-missing-graphics.patch
new file mode 100644
index 0000000..ccbf676
--- /dev/null
+++ b/0001-Resolves-rhbz-710556-don-t-crash-on-missing-graphics.patch
@@ -0,0 +1,111 @@
+From b883b506e2d4dca419838b56915c58a0030d5b98 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Tue, 7 Jun 2011 12:37:08 +0100
+Subject: [PATCH] Resolves: rhbz#710556 don't crash on missing graphics
+
+---
+ oox/source/export/drawingml.cxx |   28 ++++++++++++++--------------
+ 1 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
+index 4e94e90..7cf8d98 100644
+--- a/oox/source/export/drawingml.cxx
++++ b/oox/source/export/drawingml.cxx
+@@ -469,7 +469,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
+ {
+     GfxLink aLink = rGraphic.GetLink ();
+     OUString sMediaType;
+-    const char* sExtension = NULL;
++    const char* pExtension = "";
+     OUString sRelId;
+ 
+     SvMemoryStream aStream;
+@@ -479,42 +479,42 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
+     switch ( aLink.GetType() ) {
+         case GFX_LINK_TYPE_NATIVE_GIF:
+             sMediaType = US( "image/gif" );
+-            sExtension = ".gif";
++            pExtension = ".gif";
+             break;
+         case GFX_LINK_TYPE_NATIVE_JPG:
+             sMediaType = US( "image/jpeg" );
+-            sExtension = ".jpeg";
++            pExtension = ".jpeg";
+             break;
+         case GFX_LINK_TYPE_NATIVE_PNG:
+             sMediaType = US( "image/png" );
+-            sExtension = ".png";
++            pExtension = ".png";
+             break;
+         case GFX_LINK_TYPE_NATIVE_TIF:
+             sMediaType = US( "image/tiff" );
+-            sExtension = ".tiff";
++            pExtension = ".tiff";
+             break;
+         case GFX_LINK_TYPE_NATIVE_WMF:
+             sMediaType = US( "image/x-wmf" );
+-            sExtension = ".wmf";
++            pExtension = ".wmf";
+             break;
+         case GFX_LINK_TYPE_NATIVE_MET:
+             sMediaType = US( "image/x-met" );
+-            sExtension = ".met";
++            pExtension = ".met";
+             break;
+         case GFX_LINK_TYPE_NATIVE_PCT:
+             sMediaType = US( "image/x-pict" );
+-            sExtension = ".pct";
++            pExtension = ".pct";
+             break;
+         default: {
+             GraphicType aType = rGraphic.GetType();
+             if ( aType == GRAPHIC_BITMAP ) {
+                 GraphicConverter::Export( aStream, rGraphic, CVT_PNG );
+                 sMediaType = US( "image/png" );
+-                sExtension = ".png";
++                pExtension = ".png";
+             } else if ( aType == GRAPHIC_GDIMETAFILE ) {
+                 GraphicConverter::Export( aStream, rGraphic, CVT_EMF );
+                 sMediaType = US( "image/x-emf" );
+-                sExtension = ".emf";
++                pExtension = ".emf";
+             } else {
+                 OSL_TRACE( "unhandled graphic type" );
+                 break;
+@@ -526,7 +526,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
+             }
+     }
+ 
+-    const char *pComponent = NULL;
++    const char *pComponent = "";
+     switch ( meDocumentType )
+     {
+         case DOCUMENT_DOCX: pComponent = "word"; break;
+@@ -538,13 +538,13 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
+                                                                       .appendAscii( pComponent )
+                                                                       .appendAscii( "/media/image" )
+                                                                       .append( (sal_Int32) mnImageCounter )
+-                                                                      .appendAscii( sExtension )
++                                                                      .appendAscii( pExtension )
+                                                                       .makeStringAndClear(),
+                                                                       sMediaType );
+     xOutStream->writeBytes( Sequence< sal_Int8 >( (const sal_Int8*) aData, nDataSize ) );
+     xOutStream->closeOutput();
+ 
+-    const char *pImagePrefix = NULL;
++    const char *pImagePrefix = "";
+     switch ( meDocumentType )
+     {
+         case DOCUMENT_DOCX:
+@@ -561,7 +561,7 @@ OUString DrawingML::WriteImage( const Graphic& rGraphic )
+                                 OUStringBuffer()
+                                 .appendAscii( pImagePrefix )
+                                 .append( (sal_Int32) mnImageCounter ++ )
+-                                .appendAscii( sExtension )
++                                .appendAscii( pExtension )
+                                 .makeStringAndClear() );
+ 
+     return sRelId;
+-- 
+1.7.5.2
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 686d8b9..5d5ec57 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -143,6 +143,7 @@ Patch54: 0001-handle-NULL-display-gracefully.patch
 Patch55: 0001-fix-crash-in-fdo-36203-the-referenced-shape-didn-t-c.patch
 Patch56: 0001-Resolves-rhbz-707317-avoid-crash-in-getRowSpan.patch
 Patch57: 0001-Resolves-rhbz-710004-band-aid-for-immediate-crash-in.patch
+Patch58: 0001-Resolves-rhbz-710556-don-t-crash-on-missing-graphics.patch
 
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 %define instdir %{_libdir}
@@ -801,6 +802,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc
 %patch55 -p1 -b .fix-crash-in-fdo-36203-the-referenced-shape-didn-t-c.patch
 %patch56 -p1 -b .rhbz707317-avoid-crash-in-getRowSpan.patch
 %patch57 -p1 -b .rhbz710004-band-aid-for-immediate-crash-in.patch
+%patch58 -p1 -b .rhbz710556-don-t-crash-on-missing-graphics.patch
 
 touch scripting/source/pyprov/delzip
 touch scripting/util/provider/beanshell/delzip
@@ -2145,8 +2147,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %{basisinstdir}/program/kde-open-url
 
 %changelog
-* Thu Jun 02 2011 Caolán McNamara <caolanm at redhat.com> 1:3.3.2.2-10-UNBUILT
+* Tue Jun 07 2011 Caolán McNamara <caolanm at redhat.com> 1:3.3.2.2-10-UNBUILT
 - Resolves: rhbz#710004 band aid for crash
+- Resolves: rhbz#710556 don't crash on missing graphics on pptx export
 
 * Mon May 30 2011 Caolán McNamara <caolanm at redhat.com> 1:3.3.2.2-9
 - Resolves: rhbz#702635 set correct page number when exporting selected


More information about the scm-commits mailing list