aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2016-04-12 18:04:22 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-13 10:12:43 +0100
commit8a96a7207561e00eb92e4fb69e7340f20bfa2053 (patch)
treed512ab86ca4d79b5eca4dc9e1a078f645f5711ff
parentd71f4f54b4c22c9382bddce66c1580d875dcfef2 (diff)
downloadopenembedded-core-contrib-8a96a7207561e00eb92e4fb69e7340f20bfa2053.tar.gz
openembedded-core-contrib-8a96a7207561e00eb92e4fb69e7340f20bfa2053.tar.bz2
openembedded-core-contrib-8a96a7207561e00eb92e4fb69e7340f20bfa2053.zip
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 <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/lsb.py5
1 files changed, 5 insertions, 0 deletions
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: