1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-04 14:09:47 +00:00

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>
This commit is contained in:
Mikko Rapeli
2017-06-01 18:52:59 +03:00
committed by Richard Purdie
parent 684534198f
commit 2e09dc1be7
+4 -4
View File
@@ -1098,7 +1098,7 @@ class BaseConfig(object):
if self.serialstdio: if self.serialstdio:
logger.info("Interrupt character is '^]'") logger.info("Interrupt character is '^]'")
cmd = "stty intr ^]" cmd = "stty intr ^]"
subprocess.call(cmd, shell=True) subprocess.check_call(cmd, shell=True)
first_serial = "" first_serial = ""
if not re.search("-nographic", self.qemu_opt): if not re.search("-nographic", self.qemu_opt):
@@ -1146,7 +1146,7 @@ class BaseConfig(object):
if self.cleantap: if self.cleantap:
cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.bindir_native) cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.bindir_native)
logger.info('Running %s' % cmd) logger.info('Running %s' % cmd)
subprocess.call(cmd, shell=True) subprocess.check_call(cmd, shell=True)
if self.lock_descriptor: if self.lock_descriptor:
logger.info("Releasing lockfile for tap device '%s'" % self.tap) logger.info("Releasing lockfile for tap device '%s'" % self.tap)
self.release_lock() self.release_lock()
@@ -1155,11 +1155,11 @@ class BaseConfig(object):
logger.info("Shutting down the userspace NFS server...") logger.info("Shutting down the userspace NFS server...")
cmd = "runqemu-export-rootfs stop %s" % self.rootfs cmd = "runqemu-export-rootfs stop %s" % self.rootfs
logger.info('Running %s' % cmd) logger.info('Running %s' % cmd)
subprocess.call(cmd, shell=True) subprocess.check_call(cmd, shell=True)
if self.saved_stty: if self.saved_stty:
cmd = "stty %s" % self.saved_stty cmd = "stty %s" % self.saved_stty
subprocess.call(cmd, shell=True) subprocess.check_call(cmd, shell=True)
if self.clean_nfs_dir: if self.clean_nfs_dir:
logger.info('Removing %s' % self.rootfs) logger.info('Removing %s' % self.rootfs)