summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extensions/source/update/check/updatecheck.cxx10
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