summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorMikko Rapeli <mikko.rapeli@bmw.de>2017-06-22 16:23:14 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-28 20:55:08 +0100
commitb090ff6a277aa6e242020d7d6ffb1d351e3ee4e0 (patch)
tree3bab56e9931855db4bed7adfacb002cdd4bff586 /meta/classes
parentdf06ad5713c728070fcb9b5524f85285e5a77b7a (diff)
downloadpoky-b090ff6a277aa6e242020d7d6ffb1d351e3ee4e0.tar.gz
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>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/cml1.bbclass2
-rw-r--r--meta/classes/kernel-module-split.bbclass2
-rw-r--r--meta/classes/sstate.bbclass4
3 files changed, 4 insertions, 4 deletions
diff --git a/meta/classes/cml1.bbclass b/meta/classes/cml1.bbclass
index 38e6613c48..eb8e7907f6 100644
--- a/meta/classes/cml1.bbclass
+++ b/meta/classes/cml1.bbclass
@@ -63,7 +63,7 @@ python do_diffconfig() {
63 63
64 if isdiff: 64 if isdiff:
65 statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment 65 statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
66 subprocess.call(statement, shell=True) 66 subprocess.check_call(statement, shell=True)
67 67
68 shutil.copy(configorig, config) 68 shutil.copy(configorig, config)
69 69
diff --git a/meta/classes/kernel-module-split.bbclass b/meta/classes/kernel-module-split.bbclass
index 5e10dcf735..1035525dac 100644
--- a/meta/classes/kernel-module-split.bbclass
+++ b/meta/classes/kernel-module-split.bbclass
@@ -47,7 +47,7 @@ python split_kernel_module_packages () {
47 tf = tempfile.mkstemp() 47 tf = tempfile.mkstemp()
48 tmpfile = tf[1] 48 tmpfile = tf[1]
49 cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile) 49 cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile)
50 subprocess.call(cmd, shell=True) 50 subprocess.check_call(cmd, shell=True)
51 f = open(tmpfile) 51 f = open(tmpfile)
52 l = f.read().split("\000") 52 l = f.read().split("\000")
53 f.close() 53 f.close()
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 0a12935be9..f446c3df02 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -404,7 +404,7 @@ python sstate_hardcode_path_unpack () {
404 return 404 return
405 405
406 bb.note("Replacing fixme paths in sstate package: %s" % (sstate_hardcode_cmd)) 406 bb.note("Replacing fixme paths in sstate package: %s" % (sstate_hardcode_cmd))
407 subprocess.call(sstate_hardcode_cmd, shell=True) 407 subprocess.check_call(sstate_hardcode_cmd, shell=True)
408 408
409 # Need to remove this or we'd copy it into the target directory and may 409 # Need to remove this or we'd copy it into the target directory and may
410 # conflict with another writer 410 # conflict with another writer
@@ -453,7 +453,7 @@ def sstate_clean_manifest(manifest, d, prefix=None):
453 if os.path.exists(manifest + ".postrm"): 453 if os.path.exists(manifest + ".postrm"):
454 import subprocess 454 import subprocess
455 os.chmod(postrm, 0o755) 455 os.chmod(postrm, 0o755)
456 subprocess.call(postrm, shell=True) 456 subprocess.check_call(postrm, shell=True)
457 oe.path.remove(postrm) 457 oe.path.remove(postrm)
458 458
459 oe.path.remove(manifest) 459 oe.path.remove(manifest)