[all-commits] [llvm/llvm-project] 07a722: [lldb] Escape semicolons for all shells
Raphael Isemann via All-commits
all-commits at lists.llvm.org
Tue Apr 12 18:14:08 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 07a722c574d1260ea63f1c7b7eb235df19af8f69
https://github.com/llvm/llvm-project/commit/07a722c574d1260ea63f1c7b7eb235df19af8f69
Author: Raphael Isemann <teemperor at gmail.com>
Date: 2022-04-12 (Tue, 12 Apr 2022)
Changed paths:
M lldb/source/Utility/Args.cpp
M lldb/unittests/Utility/ArgsTest.cpp
Log Message:
-----------
[lldb] Escape semicolons for all shells
LLDB supports having globbing regexes in the process launch arguments
that will be resolved using the user's shell. This requires that we pass
the launch args to the shell and then read back the expanded arguments
using LLDB's argdumper utility.
As the shell will not just expand the globbing regexes but all special
characters, we need to escape all non-globbing charcters such as $, &,
<, >, etc. as those otherwise are interpreted and removed in the step
where we expand the globbing characters. Also because the special
characters are shell-specific, LLDB needs to maintain a list of all the
characters that need to be escaped for each specific shell.
This patch adds the missing semicolon character to the escape list for
all currently supported shells. Without this having a semicolon in the
binary path or having a semicolon in the launch arguments will cause the
argdumping process to fail. E.g., lldb -- ./calc "a;b" was failing
before but is working now.
Fixes rdar://55776943
Differential revision: https://reviews.llvm.org/D104629
More information about the All-commits
mailing list