From 878bb98a82ebecba3beaedb1f8500462c15c25e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 19 Feb 2018 02:08:45 +0100 Subject: [PATCH] qrexec: translate keywords in target specification on the client side --- qrexec/qrexec-client-vm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/qrexec/qrexec-client-vm.c b/qrexec/qrexec-client-vm.c index 6d27d8a..b5bd86d 100644 --- a/qrexec/qrexec-client-vm.c +++ b/qrexec/qrexec-client-vm.c @@ -72,6 +72,19 @@ char *get_program_name(char *prog) return prog; } +/* Target specification with keyword have changed from $... to @... . Convert + * the argument appropriately, to avoid breaking user tools. + */ +void convert_target_name_keyword(char *target) +{ + size_t i; + size_t len = strlen(target); + + for (i = 0; i < len; i++) + if (target[i] == '$') + target[i] = '@'; +} + int main(int argc, char **argv) { int trigger_fd; @@ -97,8 +110,11 @@ int main(int argc, char **argv) memset(¶ms, 0, sizeof(params)); strncpy(params.service_name, argv[2], sizeof(params.service_name)); + + convert_target_name_keyword(argv[1]); strncpy(params.target_domain, argv[1], sizeof(params.target_domain)); + snprintf(params.request_id.ident, sizeof(params.request_id.ident), "SOCKET");