mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-23 19:15:55 +00:00
Properly null-terminate the argv list created by sh.
This commit is contained in:
parent
1c45b28da6
commit
63e5583c18
Binary file not shown.
|
@ -74,19 +74,19 @@ static int runcmd(char* cmd)
|
|||
memcpy(buf, cmd, 128);
|
||||
|
||||
const char* argv[32];
|
||||
size_t argi = 1;
|
||||
size_t argc = 1;
|
||||
argv[0] = &buf[0];
|
||||
size_t buflen = strlen(buf);
|
||||
for (size_t i = 0; i < buflen; ++i) {
|
||||
if (buf[i] == ' ') {
|
||||
buf[i] = '\0';
|
||||
argv[argi++] = &buf[i + 1];
|
||||
argv[argc++] = &buf[i + 1];
|
||||
}
|
||||
}
|
||||
argv[argi + 1] = nullptr;
|
||||
argv[argc] = nullptr;
|
||||
|
||||
int retval = 0;
|
||||
if (handle_builtin(argi, argv, retval)) {
|
||||
if (handle_builtin(argc, argv, retval)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue