diff options
| author | Karel Zak <kzak@redhat.com> | 2018-01-12 11:01:26 +0100 |
|---|---|---|
| committer | Karel Zak <kzak@redhat.com> | 2018-01-12 11:01:26 +0100 |
| commit | 6d00cfb2330cb47d00d350eedfbffbbf5991a743 (patch) | |
| tree | 868f3ee9d066d0cf70339b0a693a4cda503a8dc1 /include/debugobj.h | |
| parent | 9c76f85f9a9de1117bf6d89e8df7bdc664e25fa0 (diff) | |
| download | util-linux-6d00cfb2330cb47d00d350eedfbffbbf5991a743.tar.gz | |
include/debug: don't print pointer address for SUID programs
* introduce new flag __UL_DEBUG_FL_NOADDR to suppress pointer address printing
* use __UL_DEBUG_FL_NOADDR when SUID
* move ul_debugobj() to debugobj.h, and require UL_DEBUG_CURRENT_MASK
to provide access to the current mask from ul_debugobj(). It's better
than modify all ul_debugobj() calls and use the global mask as
argument.
* remove never used UL_DEBUG_DEFINE_FLAG
Reported-by: halfdog <me@halfdog.net>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'include/debugobj.h')
| -rw-r--r-- | include/debugobj.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/debugobj.h b/include/debugobj.h new file mode 100644 index 0000000000..73b70b8dfe --- /dev/null +++ b/include/debugobj.h @@ -0,0 +1,22 @@ +#ifndef UTIL_LINUX_DEBUGOBJ_H +#define UTIL_LINUX_DEBUGOBJ_H + +/* + * Include *after* debug.h and after UL_DEBUG_CURRENT_MASK define. + */ + +static inline void __attribute__ ((__format__ (__printf__, 2, 3))) +ul_debugobj(const void *handler, const char *mesg, ...) +{ + va_list ap; + + if (handler && !(UL_DEBUG_CURRENT_MASK & __UL_DEBUG_FL_NOADDR)) + fprintf(stderr, "[%p]: ", handler); + + va_start(ap, mesg); + vfprintf(stderr, mesg, ap); + va_end(ap); + fputc('\n', stderr); +} + +#endif /* UTIL_LINUX_DEBUGOBJ_H */ |
