mirror of https://github.com/OpenTTD/OpenTTD
(svn r7280) -Codechange: Replace some sprintf() functions with the safer snprintf() functions
parent
dcbbda0cb9
commit
7c945bf828
8
driver.c
8
driver.c
|
@ -206,18 +206,18 @@ int GetDriverParamInt(const char* const* parm, const char* name, int def)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
char *GetDriverList(char* p)
|
char *GetDriverList(char* p, const char *last)
|
||||||
{
|
{
|
||||||
const DriverClass* dc;
|
const DriverClass* dc;
|
||||||
|
|
||||||
for (dc = _driver_classes; dc != endof(_driver_classes); dc++) {
|
for (dc = _driver_classes; dc != endof(_driver_classes); dc++) {
|
||||||
const DriverDesc* dd;
|
const DriverDesc* dd;
|
||||||
|
|
||||||
p += sprintf(p, "List of %s drivers:\n", dc->name);
|
p += snprintf(p, last - p, "List of %s drivers:\n", dc->name);
|
||||||
for (dd = dc->descs; dd->name != NULL; dd++) {
|
for (dd = dc->descs; dd->name != NULL; dd++) {
|
||||||
p += sprintf(p, "%10s: %s\n", dd->name, dd->longname);
|
p += snprintf(p, last - p, "%10s: %s\n", dd->name, dd->longname);
|
||||||
}
|
}
|
||||||
p += sprintf(p, "\n");
|
p = strecpy(p, "\n", last);
|
||||||
}
|
}
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
|
|
2
driver.h
2
driver.h
|
@ -8,6 +8,6 @@ void LoadDriver(int driver, const char *name);
|
||||||
bool GetDriverParamBool(const char* const* parm, const char* name);
|
bool GetDriverParamBool(const char* const* parm, const char* name);
|
||||||
int GetDriverParamInt(const char* const* parm, const char* name, int def);
|
int GetDriverParamInt(const char* const* parm, const char* name, int def);
|
||||||
|
|
||||||
char *GetDriverList(char* p);
|
char *GetDriverList(char *p, const char *last);
|
||||||
|
|
||||||
#endif /* DRIVER_H */
|
#endif /* DRIVER_H */
|
||||||
|
|
4
fileio.c
4
fileio.c
|
@ -117,7 +117,7 @@ FILE *FioFOpenFile(const char *filename)
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char buf[MAX_PATH];
|
char buf[MAX_PATH];
|
||||||
|
|
||||||
sprintf(buf, "%s%s", _path.data_dir, filename);
|
snprintf(buf, lengthof(buf), "%s%s", _path.data_dir, filename);
|
||||||
|
|
||||||
f = fopen(buf, "rb");
|
f = fopen(buf, "rb");
|
||||||
#if !defined(WIN32)
|
#if !defined(WIN32)
|
||||||
|
@ -128,7 +128,7 @@ FILE *FioFOpenFile(const char *filename)
|
||||||
#if defined SECOND_DATA_DIR
|
#if defined SECOND_DATA_DIR
|
||||||
// tries in the 2nd data directory
|
// tries in the 2nd data directory
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
sprintf(buf, "%s%s", _path.second_data_dir, filename);
|
snprintf(buf, lengthof(buf), "%s%s", _path.second_data_dir, filename);
|
||||||
strtolower(buf + strlen(_path.second_data_dir) - 1);
|
strtolower(buf + strlen(_path.second_data_dir) - 1);
|
||||||
f = fopen(buf, "rb");
|
f = fopen(buf, "rb");
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ static bool FileMD5(const MD5File file, bool warn)
|
||||||
char buf[MAX_PATH];
|
char buf[MAX_PATH];
|
||||||
|
|
||||||
// open file
|
// open file
|
||||||
sprintf(buf, "%s%s", _path.data_dir, file.filename);
|
snprintf(buf, lengthof(buf), "%s%s", _path.data_dir, file.filename);
|
||||||
f = fopen(buf, "rb");
|
f = fopen(buf, "rb");
|
||||||
|
|
||||||
#if !defined(WIN32)
|
#if !defined(WIN32)
|
||||||
|
|
2
map.c
2
map.c
|
@ -67,7 +67,7 @@ TileIndex TileAdd(TileIndex tile, TileIndexDiff add,
|
||||||
if (x >= MapSizeX() || y >= MapSizeY()) {
|
if (x >= MapSizeX() || y >= MapSizeY()) {
|
||||||
char buf[512];
|
char buf[512];
|
||||||
|
|
||||||
sprintf(buf, "TILE_ADD(%s) when adding 0x%.4X and 0x%.4X failed",
|
snprintf(buf, lengthof(buf), "TILE_ADD(%s) when adding 0x%.4X and 0x%.4X failed",
|
||||||
exp, tile, add);
|
exp, tile, add);
|
||||||
#if !defined(_MSC_VER)
|
#if !defined(_MSC_VER)
|
||||||
fprintf(stderr, "%s:%d %s\n", file, line, buf);
|
fprintf(stderr, "%s:%d %s\n", file, line, buf);
|
||||||
|
|
|
@ -457,7 +457,7 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_MAP)
|
||||||
// First packet, init some stuff
|
// First packet, init some stuff
|
||||||
if (maptype == MAP_PACKET_START) {
|
if (maptype == MAP_PACKET_START) {
|
||||||
// The name for the temp-map
|
// The name for the temp-map
|
||||||
sprintf(filename, "%s%snetwork_client.tmp", _path.autosave_dir, PATHSEP);
|
snprintf(filename, lengthof(filename), "%s%snetwork_client.tmp", _path.autosave_dir, PATHSEP);
|
||||||
|
|
||||||
file_pointer = fopen(filename, "wb");
|
file_pointer = fopen(filename, "wb");
|
||||||
if (file_pointer == NULL) {
|
if (file_pointer == NULL) {
|
||||||
|
|
|
@ -281,7 +281,7 @@ DEF_SERVER_SEND_COMMAND(PACKET_SERVER_MAP)
|
||||||
Packet *p;
|
Packet *p;
|
||||||
|
|
||||||
// Make a dump of the current game
|
// Make a dump of the current game
|
||||||
sprintf(filename, "%s%snetwork_server.tmp", _path.autosave_dir, PATHSEP);
|
snprintf(filename, lengthof(filename), "%s%snetwork_server.tmp", _path.autosave_dir, PATHSEP);
|
||||||
if (SaveOrLoad(filename, SL_SAVE) != SL_OK) error("network savedump failed");
|
if (SaveOrLoad(filename, SL_SAVE) != SL_OK) error("network savedump failed");
|
||||||
|
|
||||||
file_pointer = fopen(filename, "rb");
|
file_pointer = fopen(filename, "rb");
|
||||||
|
|
19
openttd.c
19
openttd.c
|
@ -78,7 +78,7 @@ void CDECL error(const char *s, ...)
|
||||||
char buf[512];
|
char buf[512];
|
||||||
|
|
||||||
va_start(va, s);
|
va_start(va, s);
|
||||||
vsprintf(buf, s, va);
|
vsnprintf(buf, lengthof(buf), s, va);
|
||||||
va_end(va);
|
va_end(va);
|
||||||
|
|
||||||
ShowOSErrorBox(buf);
|
ShowOSErrorBox(buf);
|
||||||
|
@ -93,7 +93,7 @@ void CDECL ShowInfoF(const char *str, ...)
|
||||||
va_list va;
|
va_list va;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
va_start(va, str);
|
va_start(va, str);
|
||||||
vsprintf(buf, str, va);
|
vsnprintf(buf, lengthof(buf), str, va);
|
||||||
va_end(va);
|
va_end(va);
|
||||||
ShowInfo(buf);
|
ShowInfo(buf);
|
||||||
}
|
}
|
||||||
|
@ -132,10 +132,10 @@ static void showhelp(void)
|
||||||
extern const char _openttd_revision[];
|
extern const char _openttd_revision[];
|
||||||
char buf[4096], *p;
|
char buf[4096], *p;
|
||||||
|
|
||||||
p = buf;
|
p = buf;
|
||||||
|
|
||||||
p += sprintf(p, "OpenTTD %s\n", _openttd_revision);
|
p += snprintf(p, lengthof(buf), "OpenTTD %s\n", _openttd_revision);
|
||||||
p += sprintf(p,
|
p = strecpy(p,
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Command line options:\n"
|
"Command line options:\n"
|
||||||
|
@ -157,10 +157,11 @@ static void showhelp(void)
|
||||||
" -i = Force to use the DOS palette\n"
|
" -i = Force to use the DOS palette\n"
|
||||||
" (use this if you see a lot of pink)\n"
|
" (use this if you see a lot of pink)\n"
|
||||||
" -c config_file = Use 'config_file' instead of 'openttd.cfg'\n"
|
" -c config_file = Use 'config_file' instead of 'openttd.cfg'\n"
|
||||||
"\n"
|
"\n",
|
||||||
|
lastof(buf)
|
||||||
);
|
);
|
||||||
|
|
||||||
p = GetDriverList(p);
|
p = GetDriverList(p, lastof(buf));
|
||||||
|
|
||||||
ShowInfo(buf);
|
ShowInfo(buf);
|
||||||
}
|
}
|
||||||
|
@ -286,10 +287,10 @@ static void LoadIntroGame(void)
|
||||||
SetupColorsAndInitialWindow();
|
SetupColorsAndInitialWindow();
|
||||||
|
|
||||||
// Generate a world.
|
// Generate a world.
|
||||||
sprintf(filename, "%sopntitle.dat", _path.data_dir);
|
snprintf(filename, lengthof(filename), "%sopntitle.dat", _path.data_dir);
|
||||||
#if defined SECOND_DATA_DIR
|
#if defined SECOND_DATA_DIR
|
||||||
if (SaveOrLoad(filename, SL_LOAD) != SL_OK) {
|
if (SaveOrLoad(filename, SL_LOAD) != SL_OK) {
|
||||||
sprintf(filename, "%sopntitle.dat", _path.second_data_dir);
|
snprintf(filename, lengthof(filename), "%sopntitle.dat", _path.second_data_dir);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (SaveOrLoad(filename, SL_LOAD) != SL_OK) {
|
if (SaveOrLoad(filename, SL_LOAD) != SL_OK) {
|
||||||
|
|
Loading…
Reference in New Issue