]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpupower: monitor: Exit with error status if execvp() fail
authorYiwei Lin <s921975628@gmail.com>
Thu, 20 Feb 2025 16:38:46 +0000 (00:38 +0800)
committerShuah Khan <skhan@linuxfoundation.org>
Thu, 20 Feb 2025 17:38:14 +0000 (10:38 -0700)
In the case that we give a invalid command to idle_monitor for
monitoring, the execvp() will fail and thus go to the next line.
As a result, we'll see two differnt monitoring output. For
example, running `cpupower monitor -i 5 invalidcmd` which `invalidcmd`
is not executable.

Link: https://lore.kernel.org/r/20250220163846.2765-1-s921975628@gmail.com
Signed-off-by: Yiwei Lin <s921975628@gmail.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/power/cpupower/utils/idle_monitor/cpupower-monitor.c

index f746099b5dacbffb30435df26c21a46ed3dd96c8..e123aa578881dec4ff0f565d3bfe89ace77a5a3d 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 
+#include <errno.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
@@ -294,7 +295,10 @@ int fork_it(char **argv)
 
        if (!child_pid) {
                /* child */
-               execvp(argv[0], argv);
+               if (execvp(argv[0], argv) == -1) {
+                       printf("Invalid monitor command %s\n", argv[0]);
+                       exit(errno);
+               }
        } else {
                /* parent */
                if (child_pid == -1) {