diff --git a/qrexec/qrexec-daemon.c b/qrexec/qrexec-daemon.c index 0cf58a1..98ab356 100644 --- a/qrexec/qrexec-daemon.c +++ b/qrexec/qrexec-daemon.c @@ -632,8 +632,7 @@ static void sanitize_name(char * untrusted_s_signed, char *extra_allowed_chars) continue; if (*untrusted_s >= '0' && *untrusted_s <= '9') continue; - if (*untrusted_s == '$' || - *untrusted_s == '_' || + if (*untrusted_s == '_' || *untrusted_s == '-' || *untrusted_s == '.') continue; @@ -665,7 +664,7 @@ static void handle_execute_service(void) ENSURE_NULL_TERMINATED(untrusted_params.target_domain); ENSURE_NULL_TERMINATED(untrusted_params.request_id.ident); sanitize_name(untrusted_params.service_name, "+"); - sanitize_name(untrusted_params.target_domain, ""); + sanitize_name(untrusted_params.target_domain, "@"); sanitize_name(untrusted_params.request_id.ident, " "); params = untrusted_params; /* sanitize end */