Fix the static analysis test
Adjust its query so that it doesn't cause a particular false positive.
This commit is contained in:
parent
50f70f93bb
commit
4bb9449e47
12
test-static
12
test-static
|
@ -1,8 +1,16 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# We don't use printf's percent notation with our custom logging mechanism,
|
# We don't use printf's percent notation with our custom logging mechanism,
|
||||||
# so the compiler cannot check it for us like it usually does
|
# so the compiler cannot check it for us like it usually does.
|
||||||
|
#
|
||||||
|
# In clang-query terms, the string we're interested in can be found through:
|
||||||
|
# set traversal IgnoreUnlessSpelledInSource
|
||||||
|
# set output dump
|
||||||
|
# match callExpr(callee(functionDecl(
|
||||||
|
# hasName("log_full"))),
|
||||||
|
# hasArgument(5, stringLiteral().bind("format")))
|
||||||
|
# However, the tool is too restricted to be useful in a shell script.
|
||||||
perl -n0777 - "$(dirname "$0")"/xC.c <<-'END'
|
perl -n0777 - "$(dirname "$0")"/xC.c <<-'END'
|
||||||
while (/\blog_[^ ]+\s*\([^"()]*"[^"]*%[^%][^"]*"/gm) {
|
while (/\blog_[^ ]+\s*\([^"()]*"[^"]*%\w[^"]*"/gm) {
|
||||||
my ($p, $m) = ($`, $&);
|
my ($p, $m) = ($`, $&);
|
||||||
printf "$ARGV:%d: suspicious log format string: %s...\n",
|
printf "$ARGV:%d: suspicious log format string: %s...\n",
|
||||||
(1 + $p =~ tr/\n//), ($m =~ s/\s+/ /rg);
|
(1 + $p =~ tr/\n//), ($m =~ s/\s+/ /rg);
|
||||||
|
|
Loading…
Reference in New Issue