From f0a7c65cec3c3ed6258f79c37fe2cb8903e3fa4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Thu, 7 Nov 2024 12:50:38 +0000 Subject: [PATCH] fix: fix escaping bug introduced by backtracking --- lib/util/escape.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/util/escape.js b/lib/util/escape.js index e4804b9..7bf2905 100644 --- a/lib/util/escape.js +++ b/lib/util/escape.js @@ -20,12 +20,12 @@ function escapeArgument(arg, doubleEscapeMetaChars) { // Sequence of backslashes followed by a double quote: // double up all the backslashes and escape the double quote - arg = arg.replace(/(?=\\*?)"/g, '$1$1\\"'); + arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"'); // Sequence of backslashes followed by the end of the string // (which will become a double quote later): // double up all the backslashes - arg = arg.replace(/(?=\\*?)$/, '$1$1'); + arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1'); // All other backslashes occur literally