From b46e210d76c3456ab7df4620a97e3702cdc7a4da Mon Sep 17 00:00:00 2001 From: svdijk Date: Fri, 17 May 2013 21:50:31 +0200 Subject: [PATCH] change (v)sprintf calls to (v)snprintf calls --- src/backends/generic/vid.c | 4 ++-- src/backends/unix/network.c | 2 +- src/backends/unix/system.c | 4 ++-- src/backends/windows/network.c | 2 +- src/backends/windows/system.c | 2 +- src/client/cl_console.c | 2 +- src/client/cl_download.c | 2 +- src/client/cl_screen.c | 4 ++-- src/common/shared/shared.c | 10 ++-------- src/game/g_cmds.c | 2 +- src/game/g_main.c | 4 ++-- src/game/g_svcmds.c | 4 ++-- src/refresh/r_main.c | 4 ++-- src/server/sv_game.c | 8 ++++---- src/server/sv_init.c | 3 ++- src/server/sv_send.c | 6 +++--- 16 files changed, 29 insertions(+), 34 deletions(-) diff --git a/src/backends/generic/vid.c b/src/backends/generic/vid.c index a3f9dd4e..9efeb46e 100644 --- a/src/backends/generic/vid.c +++ b/src/backends/generic/vid.c @@ -346,9 +346,9 @@ VID_CheckChanges(void) cls.disable_screen = true; #ifdef _WIN32 - sprintf(name, "ref_%s.dll", vid_ref->string); + snprintf(name, sizeof(name), "ref_%s.dll", vid_ref->string); #else - sprintf(name, "ref_%s.so", vid_ref->string); + snprintf(name, sizeof(name), "ref_%s.so", vid_ref->string); #endif if (!VID_LoadRefresh(name)) diff --git a/src/backends/unix/network.c b/src/backends/unix/network.c index 2c81e63a..8b3ca641 100644 --- a/src/backends/unix/network.c +++ b/src/backends/unix/network.c @@ -839,7 +839,7 @@ NET_Socket(char *net_interface, int port, netsrc_t type, int family) } else { - sprintf(Buf, "%5d", port); + snprintf(Buf, sizeof(Buf), "%5d", port); Service = Buf; } diff --git a/src/backends/unix/system.c b/src/backends/unix/system.c index 54586c44..9908bfe9 100644 --- a/src/backends/unix/system.c +++ b/src/backends/unix/system.c @@ -177,7 +177,7 @@ Sys_FindFirst(char *path, unsigned musthave, unsigned canhave) { if (CompareAttributes(findbase, d->d_name, musthave, canhave)) { - sprintf(findpath, "%s/%s", findbase, d->d_name); + snprintf(findpath, sizeof(findpath), "%s/%s", findbase, d->d_name); return findpath; } } @@ -202,7 +202,7 @@ Sys_FindNext(unsigned musthave, unsigned canhave) { if (CompareAttributes(findbase, d->d_name, musthave, canhave)) { - sprintf(findpath, "%s/%s", findbase, d->d_name); + snprintf(findpath, sizeof(findpath), "%s/%s", findbase, d->d_name); return findpath; } } diff --git a/src/backends/windows/network.c b/src/backends/windows/network.c index 801b294a..0f00ec9d 100644 --- a/src/backends/windows/network.c +++ b/src/backends/windows/network.c @@ -834,7 +834,7 @@ NET_IPSocket(char *net_interface, int port, netsrc_t type, int family) } else { - sprintf(Buf, "%5d", port); + snprintf(Buf, sizeof(Buf), "%5d", port); Service = Buf; } diff --git a/src/backends/windows/system.c b/src/backends/windows/system.c index 9cde34c5..505c1ab8 100644 --- a/src/backends/windows/system.c +++ b/src/backends/windows/system.c @@ -80,7 +80,7 @@ Sys_Error(char *error, ...) Qcommon_Shutdown(); va_start(argptr, error); - vsprintf(text, error, argptr); + vsnprintf(text, sizeof(text), error, argptr); va_end(argptr); #ifndef DEDICATED_ONLY diff --git a/src/client/cl_console.c b/src/client/cl_console.c index 0e83d9f9..4d754f90 100644 --- a/src/client/cl_console.c +++ b/src/client/cl_console.c @@ -742,7 +742,7 @@ Con_DrawConsole(float frac) dlbar[i++] = '\x82'; dlbar[i] = 0; - sprintf(dlbar + strlen(dlbar), " %02d%%", cls.downloadpercent); + snprintf(dlbar + i, sizeof(dlbar) - i, " %02d%%", cls.downloadpercent); /* draw it */ y = con.vislines - 12; diff --git a/src/client/cl_download.c b/src/client/cl_download.c index 72ebc3a1..78bb9409 100644 --- a/src/client/cl_download.c +++ b/src/client/cl_download.c @@ -399,7 +399,7 @@ CL_RequestNextDownload(void) { char fn[MAX_OSPATH]; - sprintf(fn, "textures/%s.wal", + snprintf(fn, sizeof(fn), "textures/%s.wal", map_surfaces[precache_tex++].rname); if (!CL_CheckOrDownloadFile(fn)) diff --git a/src/client/cl_screen.c b/src/client/cl_screen.c index ac377698..5fa6cfd5 100644 --- a/src/client/cl_screen.c +++ b/src/client/cl_screen.c @@ -1184,7 +1184,7 @@ SCR_ExecuteLayoutString(char *s) ping = 999; } - sprintf(block, "%3d %3d %-12.12s", score, ping, ci->name); + snprintf(block, sizeof(block), "%3d %3d %-12.12s", score, ping, ci->name); if (value == cl.playernum) { @@ -1508,7 +1508,7 @@ SCR_UpdateScreen(void) if (cl_drawfps->value) { char s[8]; - sprintf(s, "%3.0ffps", 1 / cls.frametime); + snprintf(s, sizeof(s), "%3.0ffps", 1 / cls.frametime); DrawString(viddef.width - 64, 0, s); } diff --git a/src/common/shared/shared.c b/src/common/shared/shared.c index 74616635..bf3c6271 100644 --- a/src/common/shared/shared.c +++ b/src/common/shared/shared.c @@ -1100,22 +1100,16 @@ Com_sprintf(char *dest, int size, char *fmt, ...) { int len; va_list argptr; - static char bigbuffer[0x10000]; va_start(argptr, fmt); - len = vsnprintf(bigbuffer, 0x10000, fmt, argptr); + len = vsnprintf(dest, size, fmt, argptr); va_end(argptr); - if ((len >= size) || (len == size)) + if (len >= size) { Com_Printf("Com_sprintf: overflow\n"); - - dest = NULL; return; } - - bigbuffer[size - 1] = '\0'; - strcpy(dest, bigbuffer); } char * diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 9a801097..37a9d928 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -1218,7 +1218,7 @@ Cmd_PlayerList_f(edict_t *ent) if (strlen(text) + strlen(st) > sizeof(text) - 50) { - sprintf(text + strlen(text), "And more...\n"); + Q_strlcat(text, "And more...\n", sizeof(text)); gi.cprintf(ent, PRINT_HIGH, "%s", text); return; } diff --git a/src/game/g_main.c b/src/game/g_main.c index f53c87cd..b90b16b2 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -156,7 +156,7 @@ Sys_Error(char *error, ...) char text[1024]; va_start(argptr, error); - vsprintf(text, error, argptr); + vsnprintf(text, sizeof(text), error, argptr); va_end(argptr); gi.error(ERR_FATAL, "%s", text); @@ -169,7 +169,7 @@ Com_Printf(char *msg, ...) char text[1024]; va_start(argptr, msg); - vsprintf(text, msg, argptr); + vsnprintf(text, sizeof(text), msg, argptr); va_end(argptr); gi.dprintf("%s", text); diff --git a/src/game/g_svcmds.c b/src/game/g_svcmds.c index 45d221cb..a350a466 100644 --- a/src/game/g_svcmds.c +++ b/src/game/g_svcmds.c @@ -284,11 +284,11 @@ SVCmd_WriteIP_f(void) if (!*game->string) { - sprintf(name, "%s/listip.cfg", GAMEVERSION); + snprintf(name, sizeof(name), "%s/listip.cfg", GAMEVERSION); } else { - sprintf(name, "%s/listip.cfg", game->string); + snprintf(name, sizeof(name), "%s/listip.cfg", game->string); } gi.cprintf(NULL, PRINT_HIGH, "Writing %s.\n", name); diff --git a/src/refresh/r_main.c b/src/refresh/r_main.c index 1608fb9e..4c371454 100644 --- a/src/refresh/r_main.c +++ b/src/refresh/r_main.c @@ -1637,7 +1637,7 @@ Sys_Error(char *error, ...) char text[1024]; va_start(argptr, error); - vsprintf(text, error, argptr); + vsnprintf(text, sizeof(text), error, argptr); va_end(argptr); ri.Sys_Error(ERR_FATAL, "%s", text); @@ -1650,7 +1650,7 @@ Com_Printf(char *fmt, ...) char text[1024]; va_start(argptr, fmt); - vsprintf(text, fmt, argptr); + vsnprintf(text, sizeof(text), fmt, argptr); va_end(argptr); ri.Con_Printf(PRINT_ALL, "%s", text); diff --git a/src/server/sv_game.c b/src/server/sv_game.c index 2af2bee3..97b2009f 100644 --- a/src/server/sv_game.c +++ b/src/server/sv_game.c @@ -78,7 +78,7 @@ PF_dprintf(char *fmt, ...) va_list argptr; va_start(argptr, fmt); - vsprintf(msg, fmt, argptr); + vsnprintf(msg, sizeof(msg), fmt, argptr); va_end(argptr); Com_Printf("%s", msg); @@ -107,7 +107,7 @@ PF_cprintf(edict_t *ent, int level, char *fmt, ...) } va_start(argptr, fmt); - vsprintf(msg, fmt, argptr); + vsnprintf(msg, sizeof(msg), fmt, argptr); va_end(argptr); if (ent) @@ -138,7 +138,7 @@ PF_centerprintf(edict_t *ent, char *fmt, ...) } va_start(argptr, fmt); - vsprintf(msg, fmt, argptr); + vsnprintf(msg, sizeof(msg), fmt, argptr); va_end(argptr); MSG_WriteByte(&sv.multicast, svc_centerprint); @@ -156,7 +156,7 @@ PF_error(char *fmt, ...) va_list argptr; va_start(argptr, fmt); - vsprintf(msg, fmt, argptr); + vsnprintf(msg, sizeof(msg), fmt, argptr); va_end(argptr); Com_Error(ERR_DROP, "Game Error: %s", msg); diff --git a/src/server/sv_init.c b/src/server/sv_init.c index 0a628f25..fd36fd55 100644 --- a/src/server/sv_init.c +++ b/src/server/sv_init.c @@ -212,7 +212,8 @@ SV_SpawnServer(char *server, char *spawnpoint, server_state_t serverstate, if (Cvar_VariableValue("deathmatch")) { - sprintf(sv.configstrings[CS_AIRACCEL], "%g", sv_airaccelerate->value); + snprintf(sv.configstrings[CS_AIRACCEL], sizeof(sv.configstrings[CS_AIRACCEL]), + "%g", sv_airaccelerate->value); pm_airaccelerate = sv_airaccelerate->value; } else diff --git a/src/server/sv_send.c b/src/server/sv_send.c index 688e4ee8..6b749f81 100644 --- a/src/server/sv_send.c +++ b/src/server/sv_send.c @@ -58,7 +58,7 @@ SV_ClientPrintf(client_t *cl, int level, char *fmt, ...) } va_start(argptr, fmt); - vsprintf(string, fmt, argptr); + vsnprintf(string, sizeof(string), fmt, argptr); va_end(argptr); MSG_WriteByte(&cl->netchan.message, svc_print); @@ -78,7 +78,7 @@ SV_BroadcastPrintf(int level, char *fmt, ...) int i; va_start(argptr, fmt); - vsprintf(string, fmt, argptr); + vsnprintf(string, sizeof(string), fmt, argptr); va_end(argptr); /* echo to console */ @@ -130,7 +130,7 @@ SV_BroadcastCommand(char *fmt, ...) } va_start(argptr, fmt); - vsprintf(string, fmt, argptr); + vsnprintf(string, sizeof(string), fmt, argptr); va_end(argptr); MSG_WriteByte(&sv.multicast, svc_stufftext);