From aa0506e26f0e4d1741f62f0bf9270297895dbb83 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Sun, 28 Jan 2018 22:13:49 -0800 Subject: [PATCH] symbol-resolver: check for kernel address context We only want to resolve a symbol if we're inside the kernel context. Otherwise, it wont be accurate. --- lib/symbols/sp-kernel-symbol-resolver.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/symbols/sp-kernel-symbol-resolver.c b/lib/symbols/sp-kernel-symbol-resolver.c index 3cef2111..1429b83b 100644 --- a/lib/symbols/sp-kernel-symbol-resolver.c +++ b/lib/symbols/sp-kernel-symbol-resolver.c @@ -27,16 +27,20 @@ struct _SpKernelSymbolResolver static GQuark linux_quark; static gchar * -sp_kernel_symbol_resolver_resolve (SpSymbolResolver *resolver, - guint64 time, - GPid pid, - SpCaptureAddress address, - GQuark *tag) +sp_kernel_symbol_resolver_resolve_with_context (SpSymbolResolver *resolver, + guint64 time, + GPid pid, + SpAddressContext context, + SpCaptureAddress address, + GQuark *tag) { const SpKernelSymbol *sym; g_assert (SP_IS_SYMBOL_RESOLVER (resolver)); + if (context != SP_ADDRESS_CONTEXT_KERNEL) + return NULL; + if (NULL != (sym = sp_kernel_symbol_from_address (address))) { *tag = linux_quark; @@ -49,7 +53,7 @@ sp_kernel_symbol_resolver_resolve (SpSymbolResolver *resolver, static void symbol_resolver_iface_init (SpSymbolResolverInterface *iface) { - iface->resolve = sp_kernel_symbol_resolver_resolve; + iface->resolve_with_context = sp_kernel_symbol_resolver_resolve_with_context; } G_DEFINE_TYPE_WITH_CODE (SpKernelSymbolResolver,