Re: [PATCH] kernel-shark: Suppress "Root privileges are required" if already root

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 23.07.19 г. 23:59 ч., Steven Rostedt wrote:

From: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

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.


Yes, the message can be misleading without this check. Thanks!

Reported-by: howaboutsynergy@xxxxx
Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
---
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);


Reviewed-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx>



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux