summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-08-03 19:05:41 +0200
committerThomas Haller <thaller@redhat.com>2019-08-08 10:07:55 +0200
commita010484c40dc42dee88a0a1d4c2a75054d1ce336 (patch)
tree600c2455cc833e55d38af62ffd4c29e3111ee56b
parent0dbb870f8204cd2ee232321b6c9949cad4128e6f (diff)
downloadNetworkManager-a010484c40dc42dee88a0a1d4c2a75054d1ce336.tar.gz
secret-agent: avoid log plain pointer values
This defeats ASLR. Obfuscate the pointers.
-rw-r--r--src/settings/nm-secret-agent.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/settings/nm-secret-agent.c b/src/settings/nm-secret-agent.c
index ba9f88be36..807ad1c766 100644
--- a/src/settings/nm-secret-agent.c
+++ b/src/settings/nm-secret-agent.c
@@ -75,20 +75,34 @@ G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT)
#define _NMLOG(level, ...) \
G_STMT_START { \
if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \
- char __prefix[32]; \
+ char _prefix[64]; \
\
- if ((self)) \
- g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \
- else \
- g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \
- _nm_log ((level), (_NMLOG_DOMAIN), 0, NULL, NULL, \
+ if ((self)) { \
+ g_snprintf (_prefix, \
+ sizeof (_prefix), \
+ "%s["NM_HASH_OBFUSCATE_PTR_FMT"]", \
+ ""_NMLOG_PREFIX_NAME"", \
+ NM_HASH_OBFUSCATE_PTR (self)); \
+ } else \
+ g_strlcpy (_prefix, _NMLOG_PREFIX_NAME, sizeof (_prefix)); \
+ \
+ _nm_log ((level), \
+ (_NMLOG_DOMAIN), \
+ 0, \
+ NULL, \
+ NULL, \
"%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ _prefix \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
} \
} G_STMT_END
-#define LOG_REQ_FMT "req[%p,%s,%s%s%s%s]"
-#define LOG_REQ_ARG(req) (req), (req)->dbus_command, NM_PRINT_FMT_QUOTE_STRING ((req)->path), ((req)->cancellable ? "" : " (cancelled)")
+#define LOG_REQ_FMT "req["NM_HASH_OBFUSCATE_PTR_FMT",%s,%s%s%s%s]"
+#define LOG_REQ_ARG(req) \
+ NM_HASH_OBFUSCATE_PTR (req), \
+ (req)->dbus_command, \
+ NM_PRINT_FMT_QUOTE_STRING ((req)->path), \
+ ((req)->cancellable ? "" : " (cancelled)")
/*****************************************************************************/