Skip to content

Commit

Permalink
Revert "fix: disable regexp backtracking (#160)"
Browse files Browse the repository at this point in the history
This reverts commit 5ff3a07.
  • Loading branch information
satazor committed Nov 7, 2024
1 parent ccbaa82 commit 31c1712
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions lib/util/escape.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,15 @@ function escapeArgument(arg, doubleEscapeMetaChars) {
arg = `${arg}`;

// Algorithm below is based on https://qntm.org/cmd
// It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input
// Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information

// 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(/(\\*)"/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');

// All other backslashes occur literally

Expand Down

0 comments on commit 31c1712

Please sign in to comment.