Mercurial > hg > openttd
changeset 5170:6ea3e5cdbc3b draft
(svn r7280) -Codechange: Replace some sprintf() functions with the safer snprintf() functions
author | Darkvater <Darkvater@openttd.org> |
---|---|
date | Tue, 28 Nov 2006 20:55:16 +0000 |
parents | 693380f326c4 |
children | 9b0ee274c5f6 |
files | driver.c driver.h fileio.c gfxinit.c map.c network_client.c network_server.c openttd.c |
diffstat | 8 files changed, 21 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/driver.c +++ b/driver.c @@ -206,18 +206,18 @@ } -char *GetDriverList(char* p) +char *GetDriverList(char* p, const char *last) { const DriverClass* dc; for (dc = _driver_classes; dc != endof(_driver_classes); dc++) { 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++) { - 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;
--- a/driver.h +++ b/driver.h @@ -8,6 +8,6 @@ bool GetDriverParamBool(const char* const* parm, const char* name); 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 */
--- a/fileio.c +++ b/fileio.c @@ -117,7 +117,7 @@ FILE *f; 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"); #if !defined(WIN32) @@ -128,7 +128,7 @@ #if defined SECOND_DATA_DIR // tries in the 2nd data directory 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); f = fopen(buf, "rb"); }
--- a/gfxinit.c +++ b/gfxinit.c @@ -111,7 +111,7 @@ char buf[MAX_PATH]; // 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"); #if !defined(WIN32)
--- a/map.c +++ b/map.c @@ -67,7 +67,7 @@ if (x >= MapSizeX() || y >= MapSizeY()) { 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); #if !defined(_MSC_VER) fprintf(stderr, "%s:%d %s\n", file, line, buf);
--- a/network_client.c +++ b/network_client.c @@ -457,7 +457,7 @@ // First packet, init some stuff if (maptype == MAP_PACKET_START) { // 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"); if (file_pointer == NULL) {
--- a/network_server.c +++ b/network_server.c @@ -281,7 +281,7 @@ Packet *p; // 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"); file_pointer = fopen(filename, "rb");
--- a/openttd.c +++ b/openttd.c @@ -78,7 +78,7 @@ char buf[512]; va_start(va, s); - vsprintf(buf, s, va); + vsnprintf(buf, lengthof(buf), s, va); va_end(va); ShowOSErrorBox(buf); @@ -93,7 +93,7 @@ va_list va; char buf[1024]; va_start(va, str); - vsprintf(buf, str, va); + vsnprintf(buf, lengthof(buf), str, va); va_end(va); ShowInfo(buf); } @@ -132,10 +132,10 @@ extern const char _openttd_revision[]; char buf[4096], *p; - p = buf; + p = buf; - p += sprintf(p, "OpenTTD %s\n", _openttd_revision); - p += sprintf(p, + p += snprintf(p, lengthof(buf), "OpenTTD %s\n", _openttd_revision); + p = strecpy(p, "\n" "\n" "Command line options:\n" @@ -157,10 +157,11 @@ " -i = Force to use the DOS palette\n" " (use this if you see a lot of pink)\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); } @@ -286,10 +287,10 @@ SetupColorsAndInitialWindow(); // 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 (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 if (SaveOrLoad(filename, SL_LOAD) != SL_OK) {