From 20161e9ed795fa7ff2f7855324aa836a927fb0f5 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 15 Jul 2008 20:18:21 +0000 Subject: [PATCH] Per Sam Bishop's excellent suggestion, use "system" instead of backticks to invoke sub-commands used by scan-build. This avoids meta-character translation issues caused by a shell subprocess. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53640 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/scan-build | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/utils/scan-build b/utils/scan-build index 227ea1f2ea..ae64768b37 100755 --- a/utils/scan-build +++ b/utils/scan-build @@ -269,7 +269,7 @@ sub UpdateInFilePath { close (ROUT); close (RIN); - `mv "$fname.tmp" "$fname"`; + system("mv", "$fname.tmp", $fname); } ##----------------------------------------------------------------------------## @@ -294,14 +294,14 @@ sub ScanFile { if (defined($AlreadyScanned{$digest})) { # Redundant file. Remove it. - `rm -f "$Dir/$FName"`; + system ("rm", "-f", "$Dir/$FName"); return; } $AlreadyScanned{$digest} = 1; # At this point the report file is not world readable. Make it happen. - `chmod 644 "$Dir/$FName"`; + system ("chmod", "644", "$Dir/$FName"); # Scan the report file for tags. open(IN, "$Dir/$FName") or DieDiag("Cannot open '$Dir/$FName'\n"); @@ -344,7 +344,7 @@ sub CopyJS { DieDiag("Cannot find 'sorttable.js'.\n") if (! -r "$RealBin/sorttable.js"); - `cp "$RealBin/sorttable.js" "$Dir"`; + system ("cp", "$RealBin/sorttable.js", "$Dir"); DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n") if (! -r "$Dir/sorttable.js"); @@ -373,10 +373,10 @@ sub Postprocess { if (scalar(@files) == 0) { Diag("Removing directory '$Dir' because it contains no reports.\n"); - `rm -fR "$Dir"`; + system ("rm", "-fR", $Dir); # Remove the base directory if it contains no files (don't use '-R'). - `rm -f "$BaseDir"`; + system ("rm", "-f", $BaseDir); Diag("No bugs found.\n"); return; @@ -546,13 +546,13 @@ ENDTEXT print OUT "\n\n"; close(OUT); - + CopyJS($Dir); - - # Make sure $Dir and $BaseDir is world readable/executable. - `chmod 755 "$Dir"`; - `chmod 755 "$BaseDir"`; - + + # Make sure $Dir and $BaseDir are world readable/executable. + system("chmod", "755", $Dir); + system("chmod", "755", $BaseDir); + my $Num = scalar(@Index); Diag("$Num bugs found.\n"); if ($Num > 0 && -r "$Dir/index.html") { @@ -827,7 +827,7 @@ Postprocess($HtmlDir, $BaseDir); if ($ViewResults and -r "$HtmlDir/index.html") { # Only works on Mac OS X (for now). print "Viewing analysis results: '$HtmlDir/index.html'\n"; - `open "$HtmlDir/index.html"` + system("open", "$HtmlDir/index.html"); } exit $ExitStatus; -- 2.50.1