[oe-commits] Ross Burton : insane: check packages for absolute symlinks to the tmpdir

git at git.openembedded.org git at git.openembedded.org
Fri Mar 7 14:52:14 UTC 2014


Module: openembedded-core.git
Branch: master
Commit: 9e28808a6d6f47dc10ad87b878c7e912c2bbe16f
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=9e28808a6d6f47dc10ad87b878c7e912c2bbe16f

Author: Ross Burton <ross.burton at intel.com>
Date:   Mon Mar  3 20:23:33 2014 +0000

insane: check packages for absolute symlinks to the tmpdir

Add a sanity test that checks for symlinks in packages that point into the
TMPDIR on the host.

Signed-off-by: Ross Burton <ross.burton at intel.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 meta/classes/insane.bbclass | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index cf00e12..11c1feb 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -574,6 +574,19 @@ def package_qa_check_infodir(path, name, d, elf, messages):
     if infodir in path:
         messages.append("The /usr/share/info/dir file is not meant to be shipped in a particular package.")
 
+QAPATHTEST[symlink-to-sysroot] = "package_qa_check_symlink_to_sysroot"
+def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
+    """
+    Check that the package doesn't contain any absolute symlinks to the sysroot.
+    """
+    if os.path.islink(path):
+        target = os.readlink(path)
+        if os.path.isabs(target):
+            tmpdir = d.getVar('TMPDIR', True)
+            if target.startswith(tmpdir):
+                trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "")
+                messages.append("Symlink %s in %s points to TMPDIR" % (trimmed, name))
+
 def package_qa_check_license(workdir, d):
     """
     Check for changes in the license files 



More information about the Openembedded-commits mailing list