aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2018-08-13 18:20:54 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-08-30 15:57:05 +0100
commitf6f54155420ae54a34f1ab87e76623c536adf2f9 (patch)
tree18772461b3763645216121d5207a95b736fe4ca8
parenteb3eaa6970bb8c3647187593df23e2784dd26935 (diff)
downloadopenembedded-core-contrib-f6f54155420ae54a34f1ab87e76623c536adf2f9.tar.gz
openembedded-core-contrib-f6f54155420ae54a34f1ab87e76623c536adf2f9.tar.bz2
openembedded-core-contrib-f6f54155420ae54a34f1ab87e76623c536adf2f9.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 ] (From OE-Core rev: e2b8a3d5a10868f9c0dec8d7b9f5f89fdd100fc8) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta/classes/base.bbclass4
-rw-r--r--meta/classes/license.bbclass4
2 files changed, 5 insertions, 3 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index bd0d6e3ca6..3014767b8a 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 d353110464..82fab9c63b 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -482,7 +482,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