kbrown / rpms / libreoffice

Forked from rpms/libreoffice 2 years ago
Clone

Blame SOURCES/0017-fdo-81284-Don-t-write-to-zero-length-files.patch

f085be
From 70c5401aa3b063d0f275042a48a54f42c1f54c03 Mon Sep 17 00:00:00 2001
f085be
From: Maxim Monastirsky <momonasmon@gmail.com>
f085be
Date: Mon, 14 Jul 2014 23:55:04 +0300
f085be
Subject: [PATCH 017/137] fdo#81284 Don't write to zero length files
f085be
f085be
Change-Id: I4eddcda3977f43b39abdaa8d9089ff661092361c
f085be
Reviewed-on: https://gerrit.libreoffice.org/10310
f085be
Reviewed-by: David Tardon <dtardon@redhat.com>
f085be
Tested-by: David Tardon <dtardon@redhat.com>
f085be
---
f085be
 sd/source/ui/unoidl/sddetect.cxx | 6 ++++++
f085be
 starmath/source/smdetect.cxx     | 8 ++++++++
f085be
 2 files changed, 14 insertions(+)
f085be
f085be
diff --git a/sd/source/ui/unoidl/sddetect.cxx b/sd/source/ui/unoidl/sddetect.cxx
f085be
index e8ee02e..161d11f 100644
f085be
--- a/sd/source/ui/unoidl/sddetect.cxx
f085be
+++ b/sd/source/ui/unoidl/sddetect.cxx
f085be
@@ -351,6 +351,12 @@ OUString SAL_CALL SdFilterDetect::detect( Sequence< beans::PropertyValue >& lDes
f085be
                         pStm = aMedium.GetInStream();
f085be
                         if (!pStm)
f085be
                             pFilter = NULL;
f085be
+                        else
f085be
+                        {
f085be
+                            pStm->Seek( STREAM_SEEK_TO_BEGIN );
f085be
+                            if (pStm->remainingSize() == 0)
f085be
+                                pFilter = NULL;
f085be
+                        }
f085be
                     }
f085be
 
f085be
                     if (pFilter && pStm)
f085be
diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx
f085be
index ca9453a..c943bee 100644
f085be
--- a/starmath/source/smdetect.cxx
f085be
+++ b/starmath/source/smdetect.cxx
f085be
@@ -296,8 +296,16 @@ OUString SAL_CALL SmFilterDetect::detect( Sequence< PropertyValue >& lDescriptor
f085be
                 //this approach, to be fixed at a better level than here
f085be
                 SvStream *pStrm = aMedium.GetInStream();
f085be
                 aTypeName = OUString();
f085be
+
f085be
+                sal_Size nStreamSize = 0;
f085be
                 if (pStrm && !pStrm->GetError())
f085be
                 {
f085be
+                    pStrm->Seek( STREAM_SEEK_TO_BEGIN );
f085be
+                    nStreamSize = pStrm->remainingSize();
f085be
+                }
f085be
+
f085be
+                if ( nStreamSize > 0 )
f085be
+                {
f085be
                     SotStorageRef aStorage = new SotStorage ( pStrm, sal_False );
f085be
                     if ( !aStorage->GetError() )
f085be
                     {
f085be
-- 
f085be
1.9.3
f085be