diff options
author | Moonchild <moonchild@palemoon.org> | 2020-05-06 00:17:32 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-05-06 00:17:32 +0000 |
commit | c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0 (patch) | |
tree | f847e19932bf4145a611002f2b23bd1358ce84d2 /devtools/client/shared/curl.js | |
parent | f5c2775a69cff7e1aea6b9258760fd4acc36837f (diff) | |
download | UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.gz UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.lz UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.tar.xz UXP-c0401ee7015c6dc8d5ea1cbeb231255f01f8a1d0.zip |
[devtools] Port various upstream fixes
Diffstat (limited to 'devtools/client/shared/curl.js')
-rw-r--r-- | devtools/client/shared/curl.js | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/devtools/client/shared/curl.js b/devtools/client/shared/curl.js index d9abf506a..5ce9e96bb 100644 --- a/devtools/client/shared/curl.js +++ b/devtools/client/shared/curl.js @@ -91,7 +91,7 @@ const Curl = { if (utils.isUrlEncodedRequest(data) || ["PUT", "POST", "PATCH"].includes(data.method)) { postDataText = data.postDataText; - addPostData("--data"); + addPostData("--data-raw"); addPostData(utils.writePostDataTextParams(postDataText)); ignoredHeaders.add("content-length"); } else if (multipartRequest) { @@ -400,7 +400,12 @@ const CurlUtils = { * Credit: Google DevTools */ escapeStringWin: function (str) { - /* Replace quote by double quote (but not by \") because it is + /* + Replace dollar sign because of commands (e.g $(cmd.exe)) in
+ powershell when using double quotes.
+ Useful details http://www.rlmueller.net/PowerShellEscape.htm + + Replace quote by double quote (but not by \") because it is recognized by both cmd.exe and MS Crt arguments parser. Replace % by "%" because it could be expanded to an environment @@ -414,7 +419,8 @@ const CurlUtils = { Replace new line outside of quotes since cmd.exe doesn't let to do it inside. */ - return "\"" + str.replace(/"/g, "\"\"") + return "\"" + str.replace(/\$/g, "`$")
+ .replace(/"/g, "\"\"") .replace(/%/g, "\"%\"") .replace(/\\/g, "\\\\") .replace(/[\r\n]+/g, "\"^$&\"") + "\""; |