diff options
| -rwxr-xr-x | test-static | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/test-static b/test-static index 85d7f4f..4b74e24 100755 --- a/test-static +++ b/test-static @@ -1,8 +1,16 @@  #!/bin/sh  # 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' -	while (/\blog_[^ ]+\s*\([^"()]*"[^"]*%[^%][^"]*"/gm) { +	while (/\blog_[^ ]+\s*\([^"()]*"[^"]*%\w[^"]*"/gm) {  		my ($p, $m) = ($`, $&);  		printf "$ARGV:%d: suspicious log format string: %s...\n",  			(1 + $p =~ tr/\n//), ($m =~ s/\s+/ /rg);  | 
