mtrace: make shell commands robust against meta characters

Use the list form of the open function to avoid interpreting meta
characters in the arguments.
This commit is contained in:
Andreas Schwab 2024-06-20 14:13:01 +02:00
parent aecde502e9
commit 2a6c922f09

View File

@ -87,7 +87,7 @@ if ($#ARGV == 0) {
}
# Set the environment variable LD_TRACE_LOADED_OBJECTS to 2 so the
# executable is also printed.
if (open (locs, "env LD_TRACE_LOADED_OBJECTS=2 $prog |")) {
if (open (locs, "-|", "env", "LD_TRACE_LOADED_OBJECTS=2", $prog)) {
while (<locs>) {
chop;
if (/^.*=> (.*) .(0x[0123456789abcdef]*).$/) {
@ -104,7 +104,7 @@ if ($#ARGV == 0) {
sub addr2line {
my $addr = pop(@_);
my $prog = pop(@_);
if (open (ADDR, "addr2line -e $prog $addr|")) {
if (open (ADDR, "-|", "addr2line", "-e", $prog, $addr)) {
my $line = <ADDR>;
chomp $line;
close (ADDR);