Skip to content

Commit 0607d90

Browse files
committed
qrexec: add support for service argument
Fixes QubesOS/qubes-issues#1876
1 parent ad28f4d commit 0607d90

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

qrexec/qrexec-daemon.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ static void handle_execute_service(void)
666666
ENSURE_NULL_TERMINATED(untrusted_params.service_name);
667667
ENSURE_NULL_TERMINATED(untrusted_params.target_domain);
668668
ENSURE_NULL_TERMINATED(untrusted_params.request_id.ident);
669-
sanitize_name(untrusted_params.service_name, "");
669+
sanitize_name(untrusted_params.service_name, "+");
670670
sanitize_name(untrusted_params.target_domain, "");
671671
sanitize_name(untrusted_params.request_id.ident, " ");
672672
params = untrusted_params;

qrexec/qrexec-policy

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,12 @@ def line_to_dict(line):
5050

5151

5252
def read_policy_file(service_name):
53-
policy_file=POLICY_FILE_DIR+"/"+service_name
53+
policy_file = os.path.join(POLICY_FILE_DIR, service_name)
54+
if not os.path.isfile(policy_file):
55+
# fallback to policy without specific argument set (if any)
56+
policy_file = os.path.join(POLICY_FILE_DIR, service_name.split("+")[0])
5457
if not os.path.isfile(policy_file):
55-
policy_file=DEPRECATED_POLICY_FILE_DIR+"/"+service_name
58+
policy_file = os.path.join(DEPRECATED_POLICY_FILE_DIR, service_name)
5659
if not os.path.isfile(policy_file):
5760
return None
5861
print >>sys.stderr, "RPC service '%s' uses deprecated policy location, please move to %s" % (service_name, POLICY_FILE_DIR)

0 commit comments

Comments
 (0)