(svn r3379) -Fix: protect showhelp against any possible overflow

-Add: [ FS#15 ] Added revision / version at top of help (./openttd -h)
This commit is contained in:
truelight
2006-01-06 22:52:31 +00:00
parent 79ce0def50
commit 835cd6ea28
3 changed files with 28 additions and 10 deletions

View File

@@ -206,16 +206,23 @@ int GetDriverParamInt(const char* const* parm, const char* name, int def)
}
void GetDriverList(char* p)
int GetDriverList(char* p, int size)
{
const DriverClass* dc;
int pos;
for (dc = _driver_classes; dc != endof(_driver_classes); dc++) {
const DriverDesc* dd;
p += sprintf(p, "List of %s drivers:\n", dc->name);
pos = snprintf(p, size, "List of %s drivers:\n", dc->name);
p += pos; size -= pos;
for (dd = dc->descs; dd->name != NULL; dd++) {
p += sprintf(p, "%10s: %s\n", dd->name, dd->longname);
pos = snprintf(p, size, "%10s: %s\n", dd->name, dd->longname);
p += pos; size -= pos;
}
pos = snprintf(p, size, "\n");
p += pos; size -= pos;
}
return size;
}