Skip to contentSkip to conversation

insane.bbclass: make the checking stricter for unsafe references in scripts

PATCH New Chen Qi 1 participant 2 messages Feb 19, 2016

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover insane.bbclass: make the checking stricter for unsafe references in scripts

The following changes since commit 31af4a37c429bb1db8bfc64242b2963220f9a0e1:

oeqa/parselogs: Whitelist dmi firmware failure message in 4.4 kernels (2016-02-16 23:53:43 +0000)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib ChenQi/qa-unsafe
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/qa-unsafe

Chen Qi (1):
insane.bbclass: make the checking stricter for unsafe references in
scripts

 meta/classes/insane.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 insane.bbclass: make the checking stricter for unsafe references in scripts

From: Chen Qi <[email protected]>

Previously, the checking for unsafe references is not strict enough. It only checks whether '/usr/' is in the script. As a result, any script containing statements like below will match this check.

	   PATH="/bin:/sbin:/usr/bin:/usr/sbin"

However, as we can see, this is actually not an unsafe reference. What we really want to check is something like '/usr/bin/tail', so we should make the checking stricter.

This patch solves the QA warning in gzip and nfs-utils.

---
 meta/classes/insane.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/insane.bbclass +1 -1
index aef08fe..96851a3 100644
@@ -428,7 +428,7 @@ def package_qa_check_unsafe_references_in_scripts(path, name, d, elf, messages):
         if bool(statinfo.st_mode & stat.S_IXUSR):
             # grep shell scripts for possible references to /exec_prefix/
             exec_prefix = d.getVar('exec_prefix', True)
-            statement = "grep -e '%s/' %s > /dev/null" % (exec_prefix, path)
+            statement = "grep -e '%s/[^ :]\{1,\}/[^ :]\{1,\}' %s > /dev/null" % (exec_prefix, path)
             if subprocess.call(statement, shell=True) == 0:
                 error_msg = pn + ": Found a reference to %s/ in %s" % (exec_prefix, path)
                 package_qa_handle_error("unsafe-references-in-scripts", error_msg, d)
Signature · 1 line
1.9.1