diff options
author | Yordan Karadzhov <ykaradzhov@vmware.com> | 2019-03-26 15:39:14 +0200 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-04-02 19:41:09 -0400 |
commit | 5def8aaffcdbb95c9ab5220ada0ae33db567c2b0 (patch) | |
tree | eaf20b04a4c207283338842086355a50a6e49151 | |
parent | 92d4e3c56c1faf83e78d3ba341d7f16a9b30b424 (diff) | |
download | trace-cmd-5def8aaffcdbb95c9ab5220ada0ae33db567c2b0.tar.gz |
kernel-shark: Fix a bug in KsPluginManager
const char *lib = plugin.toStdString().c_str();
This line is a bad idea because the returned array may (will) be
invalidated when the destructor of std::string is called.
Link: http://lore.kernel.org/linux-trace-devel/20190326133914.18884-1-ykaradzhov@vmware.com
Fixes: 18cf94f48 ("kernel-shark-qt: Add KernalShark Utils")
Suggested-by: Slavomir Kaslev <kaslevs@vmware.com>
Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | kernel-shark/src/KsUtils.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel-shark/src/KsUtils.cpp b/kernel-shark/src/KsUtils.cpp index b934ce3d..6af0c66d 100644 --- a/kernel-shark/src/KsUtils.cpp +++ b/kernel-shark/src/KsUtils.cpp @@ -439,8 +439,8 @@ void KsPluginManager::registerFromList(kshark_context *kshark_ctx) auto lamRegUser = [&kshark_ctx](const QString &plugin) { - const char *lib = plugin.toStdString().c_str(); - kshark_register_plugin(kshark_ctx, lib); + std::string lib = plugin.toStdString(); + kshark_register_plugin(kshark_ctx, lib.c_str()); }; _forEachInList(_ksPluginList, @@ -474,8 +474,8 @@ void KsPluginManager::unregisterFromList(kshark_context *kshark_ctx) auto lamUregUser = [&kshark_ctx](const QString &plugin) { - const char *lib = plugin.toStdString().c_str(); - kshark_unregister_plugin(kshark_ctx, lib); + std::string lib = plugin.toStdString(); + kshark_unregister_plugin(kshark_ctx, lib.c_str()); }; _forEachInList(_ksPluginList, |