// No inittab file found, default to:
_SysDebug("inittab '%s' is invalid, falling back to one VT", gsInittabPath);
- #if 0
+ #if 1
for( ;; )
{
int pid = SpawnCommand(0, 1, 1, (char *[]){DEFAULT_SHELL, NULL});
retstr[pos++] = ch;
}
}
- retstr[pos] = '\0';
+ if( retstr )
+ retstr[pos] = '\0';
return retstr;
}
}
ret[pos++] = arg;
} while(arg != NULL);
+
+ if( pos == 0 )
+ {
+ free(ret);
+ return NULL;
+ }
ret[pos] = NULL;
return ret;
}
int ProcessInittab(const char *Path)
{
+ int line_num = 0;
FILE *fp = fopen(Path, "r");
if( !fp )
{
char cmdbuf[64+1];
+ line_num ++;
+
int rv;
if( (rv = fscanf(fp, "%64s%*[ \t]", &cmdbuf)) != 1 ) {
_SysDebug("fscanf rv %i != exp 1", rv);
fscanf(fp, " ");
continue;
lineError:
- _SysDebug("label lineError: goto'd");
+ _SysDebug("label lineError: goto'd - line %i, cmdbuf='%s'", line_num, cmdbuf);
while( !feof(fp) && fgetc(fp) != '\n' )
;
continue ;
}
fclose(fp);
+
+ if( gpInitPrograms == NULL )
+ return 2;
+
return 0;
}