diff --git a/appmenus-scripts/qubes-receive-appmenus b/appmenus-scripts/qubes-receive-appmenus index b9a279b..70931c9 100755 --- a/appmenus-scripts/qubes-receive-appmenus +++ b/appmenus-scripts/qubes-receive-appmenus @@ -45,8 +45,8 @@ fields_regexp = { "Name": std_re, "GenericName": std_re, "Comment": std_re, - "Categories": re.compile(r"^[a-zA-Z0-9/.; -]*$"), - "Exec": re.compile(r"^[a-zA-Z0-9()%&>/\\:.= -]*$"), + "Categories": re.compile(r"^[a-zA-Z0-9/.;:'() -]*$"), + "Exec": re.compile(r"^[a-zA-Z0-9()%&>/{}\"\\:.= -]*$"), "Icon": re.compile(r"^[a-zA-Z0-9/_.-]*$"), } @@ -88,8 +88,8 @@ def get_appmenus(vm): row_no = 0 appmenus = {} - line_rx = re.compile(r"([a-zA-Z0-9-.]+.desktop):([a-zA-Z0-9-]+(?:\[[a-zA-Z@_]+\])?)=(.*)") - ignore_rx = re.compile(r".*([a-zA-Z0-9-.]+.desktop):(#.*|\s+)$") + line_rx = re.compile(r"([a-zA-Z0-9.()-]+.desktop):([a-zA-Z0-9-]+(?:\[[a-zA-Z@_]+\])?)=(.*)") + ignore_rx = re.compile(r".*([a-zA-Z0-9.-]+.desktop):(#.*|\s+)$") for untrusted_line in untrusted_appmenulist: # Ignore blank lines and comments if len(untrusted_line) == 0 or ignore_rx.match(untrusted_line):