From 45888d65ba8852dd4640bae7070eb38853400ccf Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Thu, 6 Feb 2025 13:38:02 +0100 Subject: [PATCH] config: Allow escaping quotes inside of quoted tokens Signed-off-by: Jakub Jelen Reviewed-by: Andreas Schneider (cherry picked from commit d1ce336ae356a843278c9608115a5a1979ac67b8) --- src/config_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/config_parser.c b/src/config_parser.c index bd6ab9d7..bd1b5e7a 100644 --- a/src/config_parser.c +++ b/src/config_parser.c @@ -82,6 +82,13 @@ char *ssh_config_get_token(char **str) if (*c == '\"') { for (r = ++c; *c; c++) { if (*c == '\"' || *c == '\n') { + if (*c == '\"' && r != c && *(c - 1) == '\\') { + /* Escaped quote: Move the remaining one char left */ + int remaining_len = strlen(c); + memmove(c - 1, c, remaining_len); + c[remaining_len - 1] = '\0'; + continue; + } *c = '\0'; c++; break;