From: Ross Burton Date: Tue, 12 Apr 2016 17:04:22 +0000 (+0100) Subject: lib/oe/lsb: sanitise the distro identifier X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~26179 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a96a7207561e00eb92e4fb69e7340f20bfa2053;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git lib/oe/lsb: sanitise the distro identifier The distribution identifier is often used to create filenames, so it needs to be safe to use as a filename. Whilst most distributions have e.g. Fedora or Debian as their name, it is possible that the name contains special characters. To ensure this doesn't cause a problem strip out any non-alphanumerics from the distribution name before returning it. [ YOCTO #9443 ] Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py index ddfe71b6b5e..e0bdfba2556 100644 --- a/meta/lib/oe/lsb.py +++ b/meta/lib/oe/lsb.py @@ -62,6 +62,8 @@ def distro_identifier(adjust_hook=None): """Return a distro identifier string based upon lsb_release -ri, with optional adjustment via a hook""" + import re + lsb_data = release_dict() if lsb_data: distro_id, release = lsb_data['Distributor ID'], lsb_data['Release'] @@ -76,6 +78,9 @@ def distro_identifier(adjust_hook=None): distro_id, release = adjust_hook(distro_id, release) if not distro_id: return "Unknown" + # Filter out any non-alphanumerics + distro_id = re.sub(r'\W', '', distro_id) + if release: id_str = '{0}-{1}'.format(distro_id, release) else: