From 938d781f4033dc84479cbcd9cdbb6e2240bc7512 Mon Sep 17 00:00:00 2001
From: Christian Breunig <christian@breunig.cc>
Date: Mon, 8 Apr 2024 20:42:46 +0200
Subject: T6173: validate allowed characters in ISO image name

Building custom VyOS version: 1.5-asdf%-202404081841
I: Checking if packages required for VyOS image build are installed
Version contained illegal character(s), allowed: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-+

(cherry picked from commit 611cfc85c531f6b6c55f89503d6d2cdf84213317)
---
 scripts/build-vyos-image | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'scripts')

diff --git a/scripts/build-vyos-image b/scripts/build-vyos-image
index d26c8a65..716a4cde 100755
--- a/scripts/build-vyos-image
+++ b/scripts/build-vyos-image
@@ -28,6 +28,7 @@ import platform
 import argparse
 import datetime
 import functools
+import string
 
 import json
 
@@ -205,6 +206,13 @@ if __name__ == "__main__":
             print("Use --build-type=release option if you want to set version number")
             sys.exit(1)
 
+    # Validate characters in version name
+    if 'version' in args:
+        allowed = string.ascii_letters + string.digits + '.' + '-' + '+'
+        if not set(args['version']) <= set(allowed):
+            print(f'Version contained illegal character(s), allowed: {allowed}')
+            sys.exit(1)
+
     ## Inject some useful hardcoded options
     args['build_dir'] = defaults.BUILD_DIR
     args['pbuilder_config'] = os.path.join(defaults.BUILD_DIR, defaults.PBUILDER_CONFIG)
-- 
cgit v1.2.3