All of lore.kernel.org
 help / color / mirror / Atom feed
* kernel-shark: Suppress "Root privileges are required" if already root
@ 2019-07-23 20:59 Steven Rostedt
  0 siblings, 0 replies; only message in thread
From: Steven Rostedt @ 2019-07-23 20:59 UTC (permalink / raw)
  To: Linux Trace Devel; +Cc: Yordan Karadzhov


From: Steven Rostedt (VMware) <rostedt@goodmis.org>

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.

Reported-by: howaboutsynergy@pm.me
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
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);

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-07-23 20:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-23 20:59 kernel-shark: Suppress "Root privileges are required" if already root Steven Rostedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.