It's actually the entire bit that parses the command line that's broken. However, the fix is quite simple, and seems to involve nothing more than simply moving two lines into a set of braces that appears to have been closed prematurely.
For anyone that's curious, the fix I found is as follows:
Change this block of code in the checkcommandline function in game.c:
if (((*c == '/') || (*c == '-')) && (!firstnet))
{
if (!Bstrcasecmp(c+1,"net")) {
firstnet = i;
netparamcount = argc - i - 1;
netparam = (char **)calloc(netparamcount, sizeof(char**));
}
i++;
continue;
}
to this:
if (((*c == '/') || (*c == '-')) && (!firstnet))
{
if (!Bstrcasecmp(c+1,"net")) {
firstnet = i;
netparamcount = argc - i - 1;
netparam = (char **)calloc(netparamcount, sizeof(char**));
i++;
continue;
}
}