--- mkinitrd-4.2.1.8/nash/nash.c.orig +++ mkinitrd-4.2.1.8/nash/nash.c @@ -836,11 +836,18 @@ } if (cmdline != NULL) { + char quote = '\0'; char * chptr, * start; start = chptr = cmdline; for (; (i < MAX_INIT_ARGS) && (*start != '\0'); i++) { - while (*chptr && !isspace(*chptr)) chptr++; + while (*chptr && (*chptr != quote)) { + if (isspace(*chptr) && quote == '\0') break; + if (*chptr == '"') quote = '"'; + if (*chptr == '\'') quote = '\''; + chptr++; + } + if (quote == '"' || quote == '\'') chptr++; if (*chptr != '\0') *(chptr++) = '\0'; initargs[i] = strdup(start); start = chptr;