[PATCH 2/4] signaltest: properly test return value from system()

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

 



signaltest writes to several /proc/sys/kernel attributes without testing
if the system() call succeeds or not. We expect the writes from echo to
suceed (i.e. yield '0' in return), so we test explicitly for that.

Signed-off-by: Henrik Austad <haustad@xxxxxxxxx>
Cc: Clark Williams <williams@xxxxxxxxxx>
Cc: John Kacur <jkacur@xxxxxxxxxx>
---
 src/signaltest/signaltest.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index b80969b..8074b68 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -65,6 +65,11 @@ struct thread_stat {
 	int threadstarted;
 	int tid;
 };
+#define SYSTEM_W(x)				\
+	if (system((x)) != 0) {			\
+		fprintf(stderr, "Trouble running %s\n", (x));	\
+		return NULL;					\
+	}							\
 
 static int shutdown;
 static int tracelimit = 0;
@@ -102,16 +107,16 @@ void *signalthread(void *param)
 	int first = 1;
 
 	if (tracelimit) {
-		system("echo 1 > /proc/sys/kernel/trace_all_cpus");
-		system("echo 1 > /proc/sys/kernel/trace_enabled");
-		system("echo 1 > /proc/sys/kernel/trace_freerunning");
-		system("echo 0 > /proc/sys/kernel/trace_print_at_crash");
-		system("echo 1 > /proc/sys/kernel/trace_user_triggered");
-		system("echo -1 > /proc/sys/kernel/trace_user_trigger_irq");
-		system("echo 0 > /proc/sys/kernel/trace_verbose");
-		system("echo 0 > /proc/sys/kernel/preempt_thresh");
-		system("echo 0 > /proc/sys/kernel/wakeup_timing");
-		system("echo 0 > /proc/sys/kernel/preempt_max_latency");
+		SYSTEM_W("echo 1 > /proc/sys/kernel/trace_all_cpus");
+		SYSTEM_W("echo 1 > /proc/sys/kernel/trace_enabled");
+		SYSTEM_W("echo 1 > /proc/sys/kernel/trace_freerunning");
+		SYSTEM_W("echo 0 > /proc/sys/kernel/trace_print_at_crash");
+		SYSTEM_W("echo 1 > /proc/sys/kernel/trace_user_triggered");
+		SYSTEM_W("echo -1 > /proc/sys/kernel/trace_user_trigger_irq");
+		SYSTEM_W("echo 0 > /proc/sys/kernel/trace_verbose");
+		SYSTEM_W("echo 0 > /proc/sys/kernel/preempt_thresh");
+		SYSTEM_W("echo 0 > /proc/sys/kernel/wakeup_timing");
+		SYSTEM_W("echo 0 > /proc/sys/kernel/preempt_max_latency");
 	}
 
 	stat->tid = gettid();
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux