From: Ross Burton Date: Mon, 13 Aug 2018 17:20:54 +0000 (+0100) Subject: classes: sanity-check LIC_FILES_CHKSUM X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~17060 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git classes: sanity-check LIC_FILES_CHKSUM 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 Signed-off-by: Richard Purdie --- diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 1a359a04b78..df11c8b270e 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -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] == '/': diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index 2ac15a1bc89..4cf7f074fc2 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -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