From 401c15a57999cfda82bd9fae681d74b778b2c1a1 Mon Sep 17 00:00:00 2001 From: Seblu <sebastien.luttringer@smartjog.com> Date: Mon, 29 Aug 2011 16:02:55 +0200 Subject: [PATCH] enforce image name and version checking --- installsystems/image.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/installsystems/image.py b/installsystems/image.py index e753f4a..d261c87 100644 --- a/installsystems/image.py +++ b/installsystems/image.py @@ -35,16 +35,19 @@ class Image(object): @staticmethod def check_image_name(buf): ''' - Check if @name is a valid image name + Check if @buf is a valid image name ''' - return re.match("[-_\w]+", buf) is not None + if re.match("^[-_\w]+$", buf) is None: + raise Exception("Invalid image name %s" % buf) @staticmethod def check_image_version(buf): ''' - Check if @name is a valid image version + Check if @buf is a valid image version ''' - return re.match("\d+", buf) is not None + if re.match("^\d+$", buf) is None: + raise Exception("Invalid image version %s" % buf) + class SourceImage(Image): ''' @@ -336,6 +339,8 @@ class SourceImage(Image): cp.read(descpath) for n in ("name","version", "description", "author"): d[n] = cp.get("image", n) + self.check_image_name(d["name"]) + self.check_image_version(d["version"]) except Exception as e: raise Exception("Bad description: %s" % e) return d @@ -419,9 +424,10 @@ class PackageImage(Image): # check description try: desc = json.loads(img_desc) + self.check_image_name(desc["name"]) + self.check_image_version(desc["version"]) except Exception as e: raise Exception("Invalid description: %s" % e) - # FIXME: we should check valid information here return desc def show(self, verbose=False): -- GitLab