aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2019-07-23 16:59:35 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-07-24 08:00:48 -0400
commit0cc751d1d7a5b922b2288dcd6c86a694a2e42eb3 (patch)
tree3a8c37928872fbec47639a88c807c655431d7502
parent9f25e6fd0a66e9fca814e45c28bd97f3bc15c99f (diff)
downloadtrace-cmd-0cc751d1d7a5b922b2288dcd6c86a694a2e42eb3.tar.gz
kernel-shark: Suppress "Root privileges are required" if already root
If the tracefs directory is configured into the kernel, and kshark-record fails to find the tracing directory, it should test if it already has root privileges (geteuid() returns zero), before posting a message "Root privileges are required" as that can confuse users. Link: http://lore.kernel.org/linux-trace-devel/20190723165935.300f58e8@gandalf.local.home Reported-by: howaboutsynergy@pm.me Reviewed-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel-shark/src/KsCaptureDialog.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
index 2e6e8f9c..dbf73302 100644
--- a/kernel-shark/src/KsCaptureDialog.cpp
+++ b/kernel-shark/src/KsCaptureDialog.cpp
@@ -18,6 +18,12 @@
#include "KsCmakeDef.hpp"
#include "KsCaptureDialog.hpp"
+extern "C" {
+ // To get access to geteuid()
+ #include <unistd.h>
+ #include <sys/types.h>
+}
+
static inline tep_handle *local_events()
{
return tracecmd_local_events(tracecmd_get_tracing_dir());
@@ -65,7 +71,9 @@ KsCaptureControl::KsCaptureControl(QWidget *parent)
if (!_localTEP)
message += "Cannot find or mount tracing directory.\n";
- if (!pluginList.count())
+
+ // geteuid() returns 0 if running as effective id of root
+ if (!pluginList.count() && geteuid())
message += "Root privileges are required.\n";
QLabel *errorLabel = new QLabel(message);