]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes: sanity-check LIC_FILES_CHKSUM
authorRoss Burton <ross.burton@intel.com>
Mon, 13 Aug 2018 17:20:54 +0000 (18:20 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 14 Aug 2018 10:36:22 +0000 (11:36 +0100)
We assume that LIC_FILES_CHKSUM is a file: URI but don't actually verify this,
which can lead to problems if you have a URI that resolves to a path of / as
Bitbake will then dutifully checksum / recursively.

[ YOCTO #12883 ]

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/base.bbclass
meta/classes/license.bbclass

index 1a359a04b78f8f83bae90f844430bf54bb90ef49..df11c8b270e6fdd5d5869342429271835f3c4248 100644 (file)
@@ -100,8 +100,8 @@ def get_lic_checksum_file_list(d):
         # We only care about items that are absolute paths since
         # any others should be covered by SRC_URI.
         try:
-            path = bb.fetch.decodeurl(url)[2]
-            if not path:
+            (method, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
+            if method != "file" or not path:
                 raise bb.fetch.MalformedUrl(url)
 
             if path[0] == '/':
index 2ac15a1bc893a3ffc5fc6ddacdf1ac899a6ae9ea..4cf7f074fc22e8bae4e1086d2985ee280952ddb8 100644 (file)
@@ -205,7 +205,9 @@ def find_license_files(d):
 
     for url in lic_files.split():
         try:
-            (type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
+            (method, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
+            if method != "file" or not path:
+                raise bb.fetch.MalformedUrl()
         except bb.fetch.MalformedUrl:
             bb.fatal("%s: LIC_FILES_CHKSUM contains an invalid URL:  %s" % (d.getVar('PF'), url))
         # We want the license filename and path