diff options
-rw-r--r-- | extensions/source/update/check/updatecheck.cxx | 10 |
1 files changed, 7 insertions, 3 deletions
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 |