summaryrefslogtreecommitdiff
path: root/sdext
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-07-03 11:24:28 +0200
committerStephan Bergmann <sbergman@redhat.com>2014-07-03 13:11:58 +0200
commit44565f46b22c99db4e06353531ba48956efe31be (patch)
treeec1e5d3fad2fc7691d81fec4b797eea5646cde9e /sdext
parente7118d205d474a3cac747238671b6fa34963eec8 (diff)
Check exit code of spawned xpdfimport
Change-Id: I4bea1ebe5c9915ad5e3a4f8fecb516bc056d060d
Diffstat (limited to 'sdext')
-rw-r--r--sdext/source/pdfimport/wrapper/wrapper.cxx35
1 files changed, 34 insertions, 1 deletions
diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx
index c60a1412f0f1..7cdb775b256b 100644
--- a/sdext/source/pdfimport/wrapper/wrapper.cxx
+++ b/sdext/source/pdfimport/wrapper/wrapper.cxx
@@ -1059,7 +1059,7 @@ bool xpdf_ImportFromFile( const OUString& rURL,
oslFileHandle pOut = NULL;
oslFileHandle pErr = NULL;
oslSecurity pSecurity = osl_getCurrentSecurity ();
- const oslProcessError eErr =
+ oslProcessError eErr =
osl_executeProcess_WithRedirectedIO(converterURL.pData,
args,
nArgs,
@@ -1115,6 +1115,39 @@ bool xpdf_ImportFromFile( const OUString& rURL,
osl_closeFile(pOut);
if( pErr )
osl_closeFile(pErr);
+ eErr = osl_joinProcess(aProcess);
+ if (eErr == osl_Process_E_None)
+ {
+ oslProcessInfo info;
+ info.Size = sizeof info;
+ eErr = osl_getProcessInfo(aProcess, osl_Process_EXITCODE, &info);
+ if (eErr == osl_Process_E_None)
+ {
+ if (info.Code != 0)
+ {
+ SAL_WARN(
+ "sdext.pdfimport",
+ "getProcessInfo of " << converterURL
+ << " failed with exit code " << info.Code);
+ bRet = false;
+ }
+ }
+ else
+ {
+ SAL_WARN(
+ "sdext.pdfimport",
+ "getProcessInfo of " << converterURL << " failed with "
+ << +eErr);
+ bRet = false;
+ }
+ }
+ else
+ {
+ SAL_WARN(
+ "sdext.pdfimport",
+ "joinProcess of " << converterURL << " failed with " << +eErr);
+ bRet = false;
+ }
osl_freeProcessHandle(aProcess);
return bRet;
}