diff --git a/alib2measurepp/src/provisioner/MeasurementProvisioner.cpp b/alib2measurepp/src/provisioner/MeasurementProvisioner.cpp
index b81b0060ed6489ce7effd144dcf90341589d0408..d36df4424aeccd0e217aa07da0196b08335b0b90 100644
--- a/alib2measurepp/src/provisioner/MeasurementProvisioner.cpp
+++ b/alib2measurepp/src/provisioner/MeasurementProvisioner.cpp
@@ -233,15 +233,18 @@ void MeasurementProvisioner::PipelineRunnerEnvironment::commandFdSwap ( ) {
 	 // swap stdin and stdout for next command
 	close ( 0 );
 	close ( 1 );
-	dup ( outputTmpfile.fd );
-	dup ( inputTmpfile.fd );
+	if ( dup ( outputTmpfile.fd ) == -1 || dup ( inputTmpfile.fd ) == -1) {
+		throw::exception::CommonException ( "MeasurementProvisioner: dup failed" );
+	}
 
 	 // rewind previous stdout to the beginning, so the next command can read the whole file as input
 	lseek ( 0, 0, SEEK_SET );
 
 	 // destroy the contents of previous stdin and rewind to the beginning
 	lseek ( 1, 0, SEEK_SET );
-	ftruncate ( 1, 0 );
+	if(ftruncate ( 1, 0 ) == -1) {
+		throw::exception::CommonException ( "MeasurementProvisioner: ftruncate failed" );
+	}
 }
 
 void MeasurementProvisioner::PipelineRunnerEnvironment::commandFdEnd ( ) {