[Libreoffice-commits] core.git: extensions/source

Julien Nabet (via logerrit) logerrit at kemper.freedesktop.org
Sat May 23 07:12:10 UTC 2020


 extensions/source/update/check/updatecheck.cxx |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

New commits:
commit 05ab836cf3001093a6e375bcb3e4654bbedcfa52
Author:     Julien Nabet <serval2412 at yahoo.fr>
AuthorDate: Fri May 22 10:03:15 2020 +0200
Commit:     Julien Nabet <serval2412 at yahoo.fr>
CommitDate: Sat May 23 09:11:34 2020 +0200

    Fix leak in extensions/updatecheck
    
    Change-Id: I693d32c6f1136dbe500b5390954fc77444144dbd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94658
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/extensions/source/update/check/updatecheck.cxx b/extensions/source/update/check/updatecheck.cxx
index a4e18c193046..217c05986129 100644
--- a/extensions/source/update/check/updatecheck.cxx
+++ b/extensions/source/update/check/updatecheck.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <comphelper/scopeguard.hxx>
 #include <config_folders.h>
 
 #include "updatecheck.hxx"
@@ -136,6 +137,12 @@ OUString getImageFromFileName(const OUString& aFile)
             nullptr, &hOut, nullptr                                   // [out] File handles for redirected I/O
         );
 
+        // Create a guard to ensure correct cleanup in its dtor in any case
+        comphelper::ScopeGuard g([hOut, hProcess] () {
+            osl_closeFile(hOut);
+            osl_freeProcessHandle(hProcess);
+        });
+
         if( osl_Process_E_None == rc )
         {
             oslProcessInfo aInfo;
@@ -169,9 +176,6 @@ OUString getImageFromFileName(const OUString& aFile)
                         return aImageName;
                 }
             }
-
-            osl_closeFile(hOut);
-            osl_freeProcessHandle(hProcess);
         }
     }
 #endif


More information about the Libreoffice-commits mailing list