aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov (VMware) <y.karadz@gmail.com>2022-01-10 17:14:24 +0200
committerYordan Karadzhov (VMware) <y.karadz@gmail.com>2022-01-14 11:25:16 +0200
commit1104f52c7eeea3512bb33370c3ac549e9c4e3af2 (patch)
treecd243f2c101d59c8209b801eba6ce6b02fbf8b1f
parentcb4ed5ebe5fd64d27d45140200d2aa5af0bc932f (diff)
downloadkernel-shark-1104f52c7eeea3512bb33370c3ac549e9c4e3af2.tar.gz
kernel-shark: Fix potential segfault in free_plugin()
The 'handle' field is not guaranteed to be initialized, hence a check is required before closing it. Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
-rw-r--r--src/libkshark-plugin.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libkshark-plugin.c b/src/libkshark-plugin.c
index 09886ce2..2eb3b4af 100644
--- a/src/libkshark-plugin.c
+++ b/src/libkshark-plugin.c
@@ -219,9 +219,10 @@ void kshark_free_draw_handler_list(struct kshark_draw_handler *handlers)
/** Close and free this plugin. */
static void free_plugin(struct kshark_plugin_list *plugin)
{
- dlclose(plugin->handle);
+ if (plugin->handle)
+ dlclose(plugin->handle);
- if (plugin->process_interface){
+ if (plugin->process_interface) {
free(plugin->process_interface->name);
free(plugin->process_interface);
}