vcl/source/gdi/embeddedfontsmanager.cxx |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

New commits:
commit 21c72b7e880c28f85e76dd694da6aad2c4e783f9
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Wed Aug 13 00:04:58 2025 +0500
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Fri Aug 15 09:08:31 2025 +0200

    Handle errors in File::close()
    
    As Michael mentioned, here may be error writing the data,
    when buffered write is used.
    
    See 
https://gerrit.libreoffice.org/c/core/+/189345/comment/562331df_0e4a6fbd/
    
    Change-Id: Iea1054a32de67f7db3416f4d238b8748c151c466
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189451
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit f256bba249ae0e0c2722905db788793044f45228)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189458
    Reviewed-by: Michael Stahl <michael.st...@collabora.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>

diff --git a/vcl/source/gdi/embeddedfontsmanager.cxx 
b/vcl/source/gdi/embeddedfontsmanager.cxx
index fe01f3e6e2ab..fd4f3eef8e50 100644
--- a/vcl/source/gdi/embeddedfontsmanager.cxx
+++ b/vcl/source/gdi/embeddedfontsmanager.cxx
@@ -145,11 +145,20 @@ bool writeFontBytesToFile(osl::File& file, const void* 
data, sal_uInt64 size)
             case osl::File::E_INTR:
                 break;
             default:
+                SAL_WARN("vcl.fonts", "Writing temporary font file failed");
                 file.close();
                 osl::File::remove(file.getURL());
                 return false;
         }
     }
+    if (file.close() != osl::File::E_None)
+    {
+        // Something failed in delayed writing?
+        SAL_WARN("vcl.fonts", "Writing temporary font file failed");
+        osl::File::remove(file.getURL());
+        return false;
+    }
+
     return true;
 }
 
commit 7b5bb478fec1da190596f818a40b7f219d5297f1
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Tue Aug 12 19:21:33 2025 +0200
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Fri Aug 15 09:08:20 2025 +0200

    Drop obsolete comment
    
    Thanks Michael for heads up:
    https://gerrit.libreoffice.org/c/core/+/189345/comment/a7543090_8215b0e3/
    
    Change-Id: I9e3451226ef6609493ac61ee495d37e62275550e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189444
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit cb2dee1dee28f5b8dc584a19987dbcfb332877fe)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189452
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Michael Stahl <michael.st...@collabora.com>

diff --git a/vcl/source/gdi/embeddedfontsmanager.cxx 
b/vcl/source/gdi/embeddedfontsmanager.cxx
index 0fb186a8f5b7..fe01f3e6e2ab 100644
--- a/vcl/source/gdi/embeddedfontsmanager.cxx
+++ b/vcl/source/gdi/embeddedfontsmanager.cxx
@@ -257,7 +257,6 @@ bool EmbeddedFontsManager::addEmbeddedFont( const 
uno::Reference< io::XInputStre
              pos < read && keyPos < key.size();
              ++pos )
             bufferRange[ pos ] ^= key[ keyPos++ ];
-        // if eot, don't write the file out yet, since we need to unpack it 
first.
         fontData.insert( fontData.end(), buffer.getConstArray(), 
buffer.getConstArray() + read );
         if( read <= 0 )
             break;

Reply via email to