summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikko Rapeli <mikko.rapeli@bmw.de>2017-06-01 18:52:59 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-03 23:46:06 +0100
commit2e09dc1be72e02c8e0bd80d06c18becd78717dd2 (patch)
tree2d993440b2968c3d24fa823344f3c8ffdda7032f
parent684534198f53c8c9b550d5a75787d8dd28d284ed (diff)
downloadpoky-2e09dc1be72e02c8e0bd80d06c18becd78717dd2.tar.gz
scripts: Fix return value checks from subprocess.call()'s
Python function subprocess.call() returns the return value of the executed process. If return values are not checked, errors may go unnoticed and bad things can happen. Change all callers of subprocess.call() which do not check for the return value to use subprocess.check_call() which raises CalledProcessError if the subprocess returns with non-zero value. https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module All users of the function were found with: $ git grep "subprocess\.call" | \ egrep -v 'if.*subprocess\.call|=\ +subprocess\.call|return.*subprocess\.call' Tested similar patch on top of yocto jethro. Only compile tested core-image-minimal on poky master branch. (From OE-Core rev: 031cf9c7834cd1cba8b03832673a3e3cfcbfae7c) Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu8
1 files changed, 4 insertions, 4 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 0039b8359e..311fbebdf4 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1098,7 +1098,7 @@ class BaseConfig(object):
1098 if self.serialstdio: 1098 if self.serialstdio:
1099 logger.info("Interrupt character is '^]'") 1099 logger.info("Interrupt character is '^]'")
1100 cmd = "stty intr ^]" 1100 cmd = "stty intr ^]"
1101 subprocess.call(cmd, shell=True) 1101 subprocess.check_call(cmd, shell=True)
1102 1102
1103 first_serial = "" 1103 first_serial = ""
1104 if not re.search("-nographic", self.qemu_opt): 1104 if not re.search("-nographic", self.qemu_opt):
@@ -1146,7 +1146,7 @@ class BaseConfig(object):
1146 if self.cleantap: 1146 if self.cleantap:
1147 cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.bindir_native) 1147 cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.bindir_native)
1148 logger.info('Running %s' % cmd) 1148 logger.info('Running %s' % cmd)
1149 subprocess.call(cmd, shell=True) 1149 subprocess.check_call(cmd, shell=True)
1150 if self.lock_descriptor: 1150 if self.lock_descriptor:
1151 logger.info("Releasing lockfile for tap device '%s'" % self.tap) 1151 logger.info("Releasing lockfile for tap device '%s'" % self.tap)
1152 self.release_lock() 1152 self.release_lock()
@@ -1155,11 +1155,11 @@ class BaseConfig(object):
1155 logger.info("Shutting down the userspace NFS server...") 1155 logger.info("Shutting down the userspace NFS server...")
1156 cmd = "runqemu-export-rootfs stop %s" % self.rootfs 1156 cmd = "runqemu-export-rootfs stop %s" % self.rootfs
1157 logger.info('Running %s' % cmd) 1157 logger.info('Running %s' % cmd)
1158 subprocess.call(cmd, shell=True) 1158 subprocess.check_call(cmd, shell=True)
1159 1159
1160 if self.saved_stty: 1160 if self.saved_stty:
1161 cmd = "stty %s" % self.saved_stty 1161 cmd = "stty %s" % self.saved_stty
1162 subprocess.call(cmd, shell=True) 1162 subprocess.check_call(cmd, shell=True)
1163 1163
1164 if self.clean_nfs_dir: 1164 if self.clean_nfs_dir:
1165 logger.info('Removing %s' % self.rootfs) 1165 logger.info('Removing %s' % self.rootfs)