summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikko Rapeli <mikko.rapeli@bmw.de>2017-06-01 18:51:33 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-05 22:36:48 +0000
commitaac956a0950c05bf58af1885474cd89bb9c8fbd1 (patch)
tree4a64ea799d588ec0fb28080cb4cd61a857a82179
parent698e36430761cd3cf81283d58ca5bb3426bd24dd (diff)
downloadbitbake-aac956a0950c05bf58af1885474cd89bb9c8fbd1.tar.gz
bitbake: 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. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/ui/ncurses.py2
-rw-r--r--lib/bb/utils.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/bb/ui/ncurses.py b/lib/bb/ui/ncurses.py
index d81e4138b..ca845a32a 100644
--- a/lib/bb/ui/ncurses.py
+++ b/lib/bb/ui/ncurses.py
@@ -297,7 +297,7 @@ class NCursesUI:
# bb.error("log data follows (%s)" % logfile)
# number_of_lines = data.getVar("BBINCLUDELOGS_LINES", d)
# if number_of_lines:
-# subprocess.call('tail -n%s %s' % (number_of_lines, logfile), shell=True)
+# subprocess.check_call('tail -n%s %s' % (number_of_lines, logfile), shell=True)
# else:
# f = open(logfile, "r")
# while True:
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 077fddc0e..6a44db57d 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -680,7 +680,7 @@ def remove(path, recurse=False):
if _check_unsafe_delete_path(path):
raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % path)
# shutil.rmtree(name) would be ideal but its too slow
- subprocess.call(['rm', '-rf'] + glob.glob(path))
+ subprocess.check_call(['rm', '-rf'] + glob.glob(path))
return
for name in glob.glob(path):
try: