From 27c3b8bca22353dfdcf4c248539a727522fc4e76 Mon Sep 17 00:00:00 2001 From: Maxim Monastirsky Date: Tue, 25 Feb 2014 14:16:25 +0200 Subject: Don't write compound header to zero length files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie964ca8b870714d1c3e92469a771fab9a71f0633 Reviewed-on: https://gerrit.libreoffice.org/8220 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sd/source/ui/unoidl/sddetect.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'sd/source/ui/unoidl') diff --git a/sd/source/ui/unoidl/sddetect.cxx b/sd/source/ui/unoidl/sddetect.cxx index 853c38e9f2d0..2ec197365197 100644 --- a/sd/source/ui/unoidl/sddetect.cxx +++ b/sd/source/ui/unoidl/sddetect.cxx @@ -352,6 +352,17 @@ OUString SAL_CALL SdFilterDetect::detect( Sequence< beans::PropertyValue >& lDes pStm = aMedium.GetInStream(); if (!pStm) pFilter = NULL; + + pStm->Seek(STREAM_SEEK_TO_END); + const sal_Size nSize = pStm->Tell(); + pStm->Seek(STREAM_SEEK_TO_BEGIN); + + // Do not attempt to create an SotStorage on a + // 0-length stream as that would create the compound + // document header on the stream and effectively write to + // disk! + if (!nSize) + pFilter = NULL; } if (pFilter && pStm) -- cgit