hwpfilter/source/htags.cxx |   26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

New commits:
commit fc3a1e561bda7fdcd4f647d7017af30a16301bbc
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Jan 28 11:34:23 2022 +0000
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Thu Feb 17 18:59:42 2022 +0100

    use our own tempfile mechanism
    
    Change-Id: Ie7853ea8bd083d1056872cfad4323ff6cede235f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129071
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 45c15e1112e03b8b211ed0968ed1b16d5ed4ddfe)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129758
    (cherry picked from commit 63fcec3105b060cffde5e94fe688c8a59418e4c0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130081
    Tested-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/hwpfilter/source/htags.cxx b/hwpfilter/source/htags.cxx
index 0c011731c1d4..359c15ae78bc 100644
--- a/hwpfilter/source/htags.cxx
+++ b/hwpfilter/source/htags.cxx
@@ -19,6 +19,9 @@
 
 #include "precompile.h"
 
+#include <o3tl/char16_t2wchar_t.hxx>
+#include <unotools/tempfile.hxx>
+
 #include <string.h>
 
 #include "hwplib.h"
@@ -108,27 +111,20 @@ void OlePicture::Read(HWPFile & hwpf)
           delete [] data;
           return;
     }
-    FILE *fp;
-    char tname[200];
-    wchar_t wtname[200];
-    tmpnam(tname);
-    if (nullptr == (fp = fopen(tname, "wb")))
-    {
-         delete [] data;
-         return;
-    }
-    fwrite(data, size, 1, fp);
+
+    utl::TempFile aTempFile;
+    aTempFile.EnableKillingFile();
+
+    SvFileStream aOutputStream(aTempFile.GetURL(), StreamMode::WRITE);
+    aOutputStream.WriteBytes(data, size);
     delete [] data;
-    fclose(fp);
-    MultiByteToWideChar(CP_ACP, 0, tname, -1, wtname, 200);
-    if( StgOpenStorage(wtname, nullptr,
+    aOutputStream.Close();
+    if( StgOpenStorage(o3tl::toW(aTempFile.GetFileName().getStr()), nullptr,
                     STGM_READWRITE|STGM_SHARE_EXCLUSIVE|STGM_TRANSACTED,
                     nullptr, 0, &pis) != S_OK ) {
          pis = nullptr;
-         unlink(tname);
          return;
     }
-    unlink(tname);
 #else
     hwpf.SkipBlock(size);
 #endif

Reply via email to