diff options
author | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2022-01-10 17:14:24 +0200 |
---|---|---|
committer | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2022-01-14 11:25:16 +0200 |
commit | 1104f52c7eeea3512bb33370c3ac549e9c4e3af2 (patch) | |
tree | cd243f2c101d59c8209b801eba6ce6b02fbf8b1f | |
parent | cb4ed5ebe5fd64d27d45140200d2aa5af0bc932f (diff) | |
download | kernel-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.c | 5 |
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); } |