diff options
author | Karel Zak | 2018-01-12 11:01:26 +0100 |
---|---|---|
committer | Karel Zak | 2018-01-12 11:01:26 +0100 |
commit | 6d00cfb2330cb47d00d350eedfbffbbf5991a743 (patch) | |
tree | 868f3ee9d066d0cf70339b0a693a4cda503a8dc1 /include/debugobj.h | |
parent | libfdisk: allow to start freespace for zero (diff) | |
download | kernel-qcow2-util-linux-6d00cfb2330cb47d00d350eedfbffbbf5991a743.tar.gz kernel-qcow2-util-linux-6d00cfb2330cb47d00d350eedfbffbbf5991a743.tar.xz kernel-qcow2-util-linux-6d00cfb2330cb47d00d350eedfbffbbf5991a743.zip |
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 000000000..73b70b8df --- /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 */ |