From 1253f4d18cab7b58dd3c48c4ff802a5c381ba1ef Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 15 Oct 2018 16:11:07 +0900 Subject: [PATCH] mcexec shebang: delete spaces *before* path as well Apparently, a shebang '#! /bin/sh' should work. Will add some ostests for these... Change-Id: Iab8ba8e3cc7e434c98742f71fe7db3c425f08278 --- executer/user/mcexec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/executer/user/mcexec.c b/executer/user/mcexec.c index f74bc47f..4ba26c5c 100644 --- a/executer/user/mcexec.c +++ b/executer/user/mcexec.c @@ -667,13 +667,18 @@ int load_elf_desc(char *filename, struct program_load_desc **desc_p, fclose(fp); - /* Delete new line character and any trailing spaces */ + /* Delete new line character and any trailing/leading spaces */ shebang_len = strlen(shebang) - 1; shebang[shebang_len] = '\0'; - while (strpbrk(shebang + shebang_len - 1, " \t")) { + while (shebang_len > 0 && + strpbrk(shebang + shebang_len - 1, " \t")) { shebang_len--; shebang[shebang_len] = '\0'; } + while (shebang_len > 0 && strpbrk(shebang, " \t") == shebang) { + shebang_len--; + shebang++; + } *shebang_p = shebang; return 0; }