From 8a96a7207561e00eb92e4fb69e7340f20bfa2053 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 12 Apr 2016 18:04:22 +0100 Subject: 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 --- meta/lib/oe/lsb.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'meta/lib/oe') diff --git a/meta/lib/oe/lsb.py b/meta/lib/oe/lsb.py index ddfe71b6b5..e0bdfba255 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: -- cgit 1.2.3-korg