summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cfg.mk6
-rw-r--r--src/ln.c2
-rw-r--r--src/stat.c2
-rw-r--r--src/touch.c2
4 files changed, 9 insertions, 3 deletions
diff --git a/cfg.mk b/cfg.mk
index 807d3c9c4..1e5108b2d 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -197,6 +197,12 @@ sc_prohibit_readlink:
msg='do not use readlink(at); use via xreadlink or areadlink*' \
$(_prohibit_regexp)
+# Don't use address of "stat" or "lstat" functions
+sc_prohibit_stat_macro_address:
+ @re='\<l?stat '':|&l?stat\>' \
+ msg='stat() and lstat() may be function-like macros' \
+ $(_prohibit_regexp)
+
# Ensure that date's --help output stays in sync with the info
# documentation for GNU strftime. The only exception is %N,
# which date accepts but GNU strftime does not.
diff --git a/src/ln.c b/src/ln.c
index 4f75c1919..197a8faec 100644
--- a/src/ln.c
+++ b/src/ln.c
@@ -138,7 +138,7 @@ do_link (const char *source, const char *dest)
{
/* Which stat to use depends on whether linkat will follow the
symlink. We can't use the shorter
- (logical ? stat : lstat) (source, &source_stats)
+ (logical?stat:lstat) (source, &source_stats)
since stat might be a function-like macro. */
if ((logical ? stat (source, &source_stats)
: lstat (source, &source_stats))
diff --git a/src/stat.c b/src/stat.c
index d3e16d705..ae5491154 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -903,7 +903,7 @@ do_stat (char const *filename, bool terse, char const *format)
}
}
/* We can't use the shorter
- (follow_links ? stat : lstat) (filename, &statbug)
+ (follow_links?stat:lstat) (filename, &statbug)
since stat might be a function-like macro. */
else if ((follow_links
? stat (filename, &statbuf)
diff --git a/src/touch.c b/src/touch.c
index d44bd2739..11d73ce6c 100644
--- a/src/touch.c
+++ b/src/touch.c
@@ -348,7 +348,7 @@ main (int argc, char **argv)
if (use_ref)
{
struct stat ref_stats;
- /* Don't use (no_dereference ? lstat : stat) (args), since stat
+ /* Don't use (no_dereference?lstat:stat) (args), since stat
might be an object-like macro. */
if (no_dereference ? lstat (ref_file, &ref_stats)
: stat (ref_file, &ref_stats))