diff options
author | Ross Burton <ross.burton@intel.com> | 2018-08-13 18:20:54 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-08-14 11:36:22 +0100 |
commit | e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8 (patch) | |
tree | d3867ae1b7364484878802064d022360c057e7e2 | |
parent | 9e291d9923efc988abe8689c64bafbb29da06339 (diff) | |
download | openembedded-core-e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8.tar.gz openembedded-core-e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8.tar.bz2 openembedded-core-e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8.zip |
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 <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/base.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/license.bbclass | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 1a359a04b7..df11c8b270 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 2ac15a1bc8..4cf7f074fc 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 |