The previous version of this wasn't correctly passing the program name
as argv[0], and was also over-complicated anyway because argv[] is
guaranteed to be terminated with a NULL pointer, so it can be passed
directly to the execv'd process without needing to be copied.

Signed-off-by: Joshua Watt <[email protected]>
---
 .../qemu/qemu-helper/qemu-oe-bridge-helper.c      | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper.c 
b/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper.c
index cadf2a012ac..9434e1d2699 100644
--- a/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper.c
+++ b/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper.c
@@ -8,6 +8,7 @@
 
 #include <stdio.h>
 #include <unistd.h>
+#include <stdlib.h>
 
 void try_program(char const* path, char** args) {
     if (access(path, X_OK) == 0) {
@@ -18,22 +19,14 @@ void try_program(char const* path, char** args) {
 int main(int argc, char** argv) {
     char* var;
 
-    /* Copy arguments so that they are a NULL terminated list, skipping argv[0]
-     * since it is this program name */
-    char** args = malloc(argc * sizeof(char*));
-    for (int i = 0; i < argc - 1; i++) {
-        args[i] = argv[i + 1];
-    }
-    args[argc - 1] = NULL;
-
     var = getenv("QEMU_BRIDGE_HELPER");
     if (var && var[0] != '\0') {
-        execvp(var, args);
+        execvp(var, argv);
         return 1;
     }
 
-    try_program("/usr/libexec/qemu-bridge-helper", args);
-    try_program("/usr/lib/qemu/qemu-bridge-helper", args);
+    try_program("/usr/libexec/qemu-bridge-helper", argv);
+    try_program("/usr/lib/qemu/qemu-bridge-helper", argv);
 
     fprintf(stderr, "No bridge helper found\n");
     return 1;
-- 
2.33.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#173389): 
https://lists.openembedded.org/g/openembedded-core/message/173389
Mute This Topic: https://lists.openembedded.org/mt/95073277/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to