mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 23:02:22 +02:00
meta: 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: 578c8205fd14c48c6d30ef2889d86f1b4aee060a) 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:
committed by
Richard Purdie
parent
df06ad5713
commit
b090ff6a27
@@ -63,7 +63,7 @@ python do_diffconfig() {
|
||||
|
||||
if isdiff:
|
||||
statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
|
||||
subprocess.call(statement, shell=True)
|
||||
subprocess.check_call(statement, shell=True)
|
||||
|
||||
shutil.copy(configorig, config)
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ python split_kernel_module_packages () {
|
||||
tf = tempfile.mkstemp()
|
||||
tmpfile = tf[1]
|
||||
cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile)
|
||||
subprocess.call(cmd, shell=True)
|
||||
subprocess.check_call(cmd, shell=True)
|
||||
f = open(tmpfile)
|
||||
l = f.read().split("\000")
|
||||
f.close()
|
||||
|
||||
@@ -404,7 +404,7 @@ python sstate_hardcode_path_unpack () {
|
||||
return
|
||||
|
||||
bb.note("Replacing fixme paths in sstate package: %s" % (sstate_hardcode_cmd))
|
||||
subprocess.call(sstate_hardcode_cmd, shell=True)
|
||||
subprocess.check_call(sstate_hardcode_cmd, shell=True)
|
||||
|
||||
# Need to remove this or we'd copy it into the target directory and may
|
||||
# conflict with another writer
|
||||
@@ -453,7 +453,7 @@ def sstate_clean_manifest(manifest, d, prefix=None):
|
||||
if os.path.exists(manifest + ".postrm"):
|
||||
import subprocess
|
||||
os.chmod(postrm, 0o755)
|
||||
subprocess.call(postrm, shell=True)
|
||||
subprocess.check_call(postrm, shell=True)
|
||||
oe.path.remove(postrm)
|
||||
|
||||
oe.path.remove(manifest)
|
||||
|
||||
@@ -52,4 +52,4 @@ class BuildProject(metaclass=ABCMeta):
|
||||
|
||||
def clean(self):
|
||||
self._run('rm -rf %s' % self.targetdir)
|
||||
subprocess.call('rm -f %s' % self.localarchive, shell=True)
|
||||
subprocess.check_call('rm -f %s' % self.localarchive, shell=True)
|
||||
|
||||
@@ -69,7 +69,7 @@ class BuildProject(metaclass=ABCMeta):
|
||||
|
||||
def clean(self):
|
||||
self._run('rm -rf %s' % self.targetdir)
|
||||
subprocess.call('rm -f %s' % self.localarchive, shell=True)
|
||||
subprocess.check_call('rm -f %s' % self.localarchive, shell=True)
|
||||
pass
|
||||
|
||||
class TargetBuildProject(BuildProject):
|
||||
@@ -136,4 +136,4 @@ class SDKBuildProject(BuildProject):
|
||||
|
||||
def _run(self, cmd):
|
||||
self.log("Running . %s; " % self.sdkenv + cmd)
|
||||
return subprocess.call(". %s; " % self.sdkenv + cmd, shell=True)
|
||||
return subprocess.check_call(". %s; " % self.sdkenv + cmd, shell=True)
|
||||
|
||||
Reference in New Issue
Block a user