From 27b8f1d0b9a5e0542eb08b9d8788de5738c6b892 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 24 May 2021 13:01:42 -0400 Subject: [PATCH] [core] compare entire "/bin/sh" "-c" after execve compare entire "/bin/sh" "-c" strings after execve if execve fails --- src/fdevent.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/fdevent.c b/src/fdevent.c index 961347cb..cf587852 100644 --- a/src/fdevent.c +++ b/src/fdevent.c @@ -786,11 +786,11 @@ pid_t fdevent_fork_execve(const char *name, char *argv[], char *envp[], int fdin execve(name, argv, envp ? envp : environ); int errnum = errno; - if (0 == memcmp(argv[0], "/bin/sh", sizeof("/bin/sh")-1) - && argv[1] && 0 == memcmp(argv[1], "-c", sizeof("-c")-1)) - perror(argv[2]); - else - perror(argv[0]); + int argnum = + (0 == strcmp(argv[0], "/bin/sh") && argv[1] && 0 == strcmp(argv[1], "-c")) + ? 2 + : 0; + perror(argv[argnum]); _exit(errnum); #else