Merge pull request #276 from yan12125/fix-mldr-argv-allocation

Fix running programs directly via `darling prog`
This commit is contained in:
Sergey Bugaev 2017-04-05 18:40:25 +03:00 committed by GitHub
commit b6fcbeb87c

View File

@ -92,13 +92,18 @@ int main(int argc, char** argv, char** envp)
}
// sys_execve() passes the original file path appended to the mldr path in argv[0].
filename = (char*) __builtin_alloca(strlen(argv[0])+1);
p = strchr(argv[0], '!');
if (p != NULL)
{
filename = (char*) __builtin_alloca(strlen(argv[0])+1);
strcpy(filename, p + 1);
}
else
{
filename = (char*) __builtin_alloca(strlen(argv[1])+1);
strcpy(filename, argv[1]);
}
#ifdef __i386__
load(filename, &entryPoint, &mh, CPU_TYPE_X86, argv); // accept i386 only