mirror of
https://github.com/libretro/libretro-tyrquake.git
synced 2025-03-01 12:15:42 +00:00
[PATCH] vsprintf -> vsnprintf conversions
Convert all instances of un-checked vsprintf calls into vsnprintf. Most functions switched to MAX_PRINTMSG length buffers instead of 1024. This means we now silently truncate messages, rather than crashing (preferrably, I think). This patch is based on some changes proposed by Ozkan. Signed-off-by: Tyrann <tyrann@disenchant.net>
This commit is contained in:
parent
b77e04a80c
commit
138145c9bd
20
NQ/host.c
20
NQ/host.c
@ -109,10 +109,10 @@ void
|
|||||||
Host_EndGame(char *message, ...)
|
Host_EndGame(char *message, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, message);
|
va_start(argptr, message);
|
||||||
vsprintf(string, message, argptr);
|
vsnprintf(string, sizeof(string), message, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
Con_DPrintf("%s: %s\n", __func__, string);
|
Con_DPrintf("%s: %s\n", __func__, string);
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ void
|
|||||||
Host_Error(char *error, ...)
|
Host_Error(char *error, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
static qboolean inerror = false;
|
static qboolean inerror = false;
|
||||||
|
|
||||||
if (inerror)
|
if (inerror)
|
||||||
@ -151,7 +151,7 @@ Host_Error(char *error, ...)
|
|||||||
SCR_EndLoadingPlaque(); // reenable screen updates
|
SCR_EndLoadingPlaque(); // reenable screen updates
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
Con_Printf("%s: %s\n", __func__, string);
|
Con_Printf("%s: %s\n", __func__, string);
|
||||||
|
|
||||||
@ -299,10 +299,10 @@ void
|
|||||||
SV_ClientPrintf(char *fmt, ...)
|
SV_ClientPrintf(char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
MSG_WriteByte(&host_client->message, svc_print);
|
MSG_WriteByte(&host_client->message, svc_print);
|
||||||
@ -320,11 +320,11 @@ void
|
|||||||
SV_BroadcastPrintf(char *fmt, ...)
|
SV_BroadcastPrintf(char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
for (i = 0; i < svs.maxclients; i++)
|
for (i = 0; i < svs.maxclients; i++)
|
||||||
@ -345,10 +345,10 @@ void
|
|||||||
Host_ClientCommands(char *fmt, ...)
|
Host_ClientCommands(char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
MSG_WriteByte(&host_client->message, svc_stufftext);
|
MSG_WriteByte(&host_client->message, svc_stufftext);
|
||||||
|
@ -253,10 +253,10 @@ void
|
|||||||
PR_RunError(char *error, ...)
|
PR_RunError(char *error, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
PR_PrintStatement(pr_statements + pr_xstatement);
|
PR_PrintStatement(pr_statements + pr_xstatement);
|
||||||
|
@ -62,16 +62,11 @@ Sys_Printf(char *fmt, ...)
|
|||||||
va_list argptr;
|
va_list argptr;
|
||||||
char text[MAX_PRINTMSG];
|
char text[MAX_PRINTMSG];
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
cnt = vsnprintf(text, sizeof(text) - 1, fmt, argptr);
|
vsnprintf(text, sizeof(text) - 1, fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
// FIXME - require glibc >= 2.1 for C99 standard return value
|
|
||||||
if (cnt >= sizeof(text))
|
|
||||||
Sys_Error("memory overwrite in Sys_Printf");
|
|
||||||
|
|
||||||
if (nostdout)
|
if (nostdout)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -126,7 +121,7 @@ Sys_Error(char *error, ...)
|
|||||||
fcntl(STDIN_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
|
fcntl(STDIN_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
fprintf(stderr, "Error: %s\n", string);
|
fprintf(stderr, "Error: %s\n", string);
|
||||||
|
|
||||||
@ -225,7 +220,7 @@ Sys_DebugLog(char *file, char *fmt, ...)
|
|||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(data, fmt, argptr);
|
vsnprintf(data, sizeof(data), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
// fd = open(file, O_WRONLY | O_BINARY | O_CREAT | O_APPEND, 0666);
|
// fd = open(file, O_WRONLY | O_BINARY | O_CREAT | O_APPEND, 0666);
|
||||||
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
||||||
|
@ -77,7 +77,7 @@ Sys_DebugLog(char *file, char *fmt, ...)
|
|||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(data, fmt, argptr);
|
vsnprintf(data, sizeof(data), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
||||||
write(fd, data, strlen(data));
|
write(fd, data, strlen(data));
|
||||||
@ -395,12 +395,12 @@ Sys_Error(char *error, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(text, error, argptr);
|
vsnprintf(text, sizeof(error), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
if (isDedicated) {
|
if (isDedicated) {
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(text, error, argptr);
|
vsnprintf(text, sizeof(text), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
sprintf(text2, "ERROR: %s\n", text);
|
sprintf(text2, "ERROR: %s\n", text);
|
||||||
@ -452,7 +452,7 @@ Sys_Printf(char *fmt, ...)
|
|||||||
|
|
||||||
if (isDedicated) {
|
if (isDedicated) {
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(text, fmt, argptr);
|
vsnprintf(text, sizeof(text), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
WriteFile(houtput, text, strlen(text), &dummy, NULL);
|
WriteFile(houtput, text, strlen(text), &dummy, NULL);
|
||||||
|
@ -1214,10 +1214,10 @@ void
|
|||||||
Host_EndGame(char *message, ...)
|
Host_EndGame(char *message, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, message);
|
va_start(argptr, message);
|
||||||
vsprintf(string, message, argptr);
|
vsnprintf(string, sizeof(string), message, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
Con_Printf("\n===========================\n");
|
Con_Printf("\n===========================\n");
|
||||||
Con_Printf("Host_EndGame: %s\n", string);
|
Con_Printf("Host_EndGame: %s\n", string);
|
||||||
@ -1239,7 +1239,7 @@ void
|
|||||||
Host_Error(char *error, ...)
|
Host_Error(char *error, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
static qboolean inerror = false;
|
static qboolean inerror = false;
|
||||||
|
|
||||||
if (inerror)
|
if (inerror)
|
||||||
@ -1247,7 +1247,7 @@ Host_Error(char *error, ...)
|
|||||||
inerror = true;
|
inerror = true;
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
Con_Printf("Host_Error: %s\n", string);
|
Con_Printf("Host_Error: %s\n", string);
|
||||||
|
|
||||||
|
@ -55,16 +55,11 @@ Sys_Printf(char *fmt, ...)
|
|||||||
va_list argptr;
|
va_list argptr;
|
||||||
char text[MAX_PRINTMSG];
|
char text[MAX_PRINTMSG];
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
int cnt;
|
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
cnt = vsnprintf(text, sizeof(text) - 1, fmt, argptr);
|
vsnprintf(text, sizeof(text) - 1, fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
// FIXME - require glibc >= 2.1 for C99 standard return value
|
|
||||||
if (cnt >= sizeof(text))
|
|
||||||
Sys_Error("memory overwrite in Sys_Printf");
|
|
||||||
|
|
||||||
if (nostdout)
|
if (nostdout)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -105,7 +100,7 @@ Sys_Error(char *error, ...)
|
|||||||
fcntl(STDIN_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
|
fcntl(STDIN_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
fprintf(stderr, "Error: %s\n", string);
|
fprintf(stderr, "Error: %s\n", string);
|
||||||
|
|
||||||
@ -204,7 +199,7 @@ Sys_DebugLog(char *file, char *fmt, ...)
|
|||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(data, fmt, argptr);
|
vsnprintf(data, sizeof(data), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
||||||
write(fd, data, strlen(data));
|
write(fd, data, strlen(data));
|
||||||
|
@ -66,7 +66,7 @@ Sys_DebugLog(char *file, char *fmt, ...)
|
|||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(data, fmt, argptr);
|
vsnprintf(data, sizeof(data), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666);
|
||||||
write(fd, data, strlen(data));
|
write(fd, data, strlen(data));
|
||||||
@ -237,7 +237,7 @@ Sys_Error(char *error, ...)
|
|||||||
Host_Shutdown();
|
Host_Shutdown();
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(text, error, argptr);
|
vsnprintf(text, sizeof(text), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
MessageBox(NULL, text, "Error", 0 /* MB_OK */ );
|
MessageBox(NULL, text, "Error", 0 /* MB_OK */ );
|
||||||
|
@ -151,7 +151,7 @@ Netchan_OutOfBandPrint(netadr_t adr, char *format, ...)
|
|||||||
static char string[8192]; /* FIXME - ??? why static? - stack probs? */
|
static char string[8192]; /* FIXME - ??? why static? - stack probs? */
|
||||||
|
|
||||||
va_start(argptr, format);
|
va_start(argptr, format);
|
||||||
vsprintf(string, format, argptr);
|
vsnprintf(string, sizeof(string), format, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
Netchan_OutOfBand(adr, strlen(string), (byte *)string);
|
Netchan_OutOfBand(adr, strlen(string), (byte *)string);
|
||||||
|
@ -254,10 +254,10 @@ void
|
|||||||
PR_RunError(char *error, ...)
|
PR_RunError(char *error, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
PR_PrintStatement(pr_statements + pr_xstatement);
|
PR_PrintStatement(pr_statements + pr_xstatement);
|
||||||
|
@ -129,7 +129,7 @@ void
|
|||||||
SV_Error(char *error, ...)
|
SV_Error(char *error, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
static char string[1024];
|
static char string[MAX_PRINTMSG];
|
||||||
static qboolean inerror = false;
|
static qboolean inerror = false;
|
||||||
|
|
||||||
if (inerror)
|
if (inerror)
|
||||||
@ -138,7 +138,7 @@ SV_Error(char *error, ...)
|
|||||||
inerror = true;
|
inerror = true;
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
Con_Printf("%s: %s\n", __func__, string);
|
Con_Printf("%s: %s\n", __func__, string);
|
||||||
|
@ -105,7 +105,6 @@ Con_Printf
|
|||||||
Handles cursor positioning, line wrapping, etc
|
Handles cursor positioning, line wrapping, etc
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
// FIXME: make a buffer size safe vsprintf?
|
|
||||||
void
|
void
|
||||||
Con_Printf(char *fmt, ...)
|
Con_Printf(char *fmt, ...)
|
||||||
{
|
{
|
||||||
@ -113,7 +112,7 @@ Con_Printf(char *fmt, ...)
|
|||||||
char msg[MAX_PRINTMSG];
|
char msg[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(msg, fmt, argptr);
|
vsnprintf(msg, sizeof(msg), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
// add to redirected message
|
// add to redirected message
|
||||||
@ -146,7 +145,7 @@ Con_DPrintf(char *fmt, ...)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(msg, fmt, argptr);
|
vsnprintf(msg, sizeof(msg), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
Con_Printf("%s", msg);
|
Con_Printf("%s", msg);
|
||||||
@ -180,13 +179,13 @@ void
|
|||||||
SV_ClientPrintf(client_t *cl, int level, char *fmt, ...)
|
SV_ClientPrintf(client_t *cl, int level, char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
if (level < cl->messagelevel)
|
if (level < cl->messagelevel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
SV_PrintToClient(cl, level, string);
|
SV_PrintToClient(cl, level, string);
|
||||||
@ -203,12 +202,12 @@ void
|
|||||||
SV_BroadcastPrintf(int level, char *fmt, ...)
|
SV_BroadcastPrintf(int level, char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
client_t *cl;
|
client_t *cl;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
Sys_Printf("%s", string); // print to the console
|
Sys_Printf("%s", string); // print to the console
|
||||||
@ -234,12 +233,12 @@ void
|
|||||||
SV_BroadcastCommand(char *fmt, ...)
|
SV_BroadcastCommand(char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char string[1024];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
if (!sv.state)
|
if (!sv.state)
|
||||||
return;
|
return;
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(string, fmt, argptr);
|
vsnprintf(string, sizeof(string), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
MSG_WriteByte(&sv.reliable_datagram, svc_stufftext);
|
MSG_WriteByte(&sv.reliable_datagram, svc_stufftext);
|
||||||
|
@ -551,7 +551,7 @@ void
|
|||||||
OutofBandPrintf(netadr_t where, char *fmt, ...)
|
OutofBandPrintf(netadr_t where, char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
char send[1024];
|
char send[MAX_PRINTMSG];
|
||||||
|
|
||||||
send[0] = 0xff;
|
send[0] = 0xff;
|
||||||
send[1] = 0xff;
|
send[1] = 0xff;
|
||||||
@ -559,7 +559,7 @@ OutofBandPrintf(netadr_t where, char *fmt, ...)
|
|||||||
send[3] = 0xff;
|
send[3] = 0xff;
|
||||||
send[4] = A2C_PRINT;
|
send[4] = A2C_PRINT;
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(send + 5, fmt, argptr);
|
vsnprintf(send + 5, sizeof(send) - 5, fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
NET_SendPacket(strlen(send) + 1, send, where);
|
NET_SendPacket(strlen(send) + 1, send, where);
|
||||||
|
@ -115,7 +115,7 @@ Sys_Error(char *error, ...)
|
|||||||
char string[MAX_PRINTMSG];
|
char string[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(string, error, argptr);
|
vsnprintf(string, sizeof(string), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
printf("Fatal error: %s\n", string);
|
printf("Fatal error: %s\n", string);
|
||||||
|
|
||||||
@ -135,12 +135,9 @@ Sys_Printf(char *fmt, ...)
|
|||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(text, fmt, argptr);
|
vsnprintf(text, sizeof(text), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
if (strlen(text) > sizeof(text))
|
|
||||||
Sys_Error("memory overwrite in Sys_Printf");
|
|
||||||
|
|
||||||
if (sys_nostdout.value)
|
if (sys_nostdout.value)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ Sys_Error(char *error, ...)
|
|||||||
char text[MAX_PRINTMSG];
|
char text[MAX_PRINTMSG];
|
||||||
|
|
||||||
va_start(argptr, error);
|
va_start(argptr, error);
|
||||||
vsprintf(text, error, argptr);
|
vsnprintf(text, sizeof(text), error, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
// MessageBox(NULL, text, "Error", 0 /* MB_OK */ );
|
// MessageBox(NULL, text, "Error", 0 /* MB_OK */ );
|
||||||
|
@ -304,7 +304,6 @@ Con_Printf
|
|||||||
Handles cursor positioning, line wrapping, etc
|
Handles cursor positioning, line wrapping, etc
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
// FIXME: make a buffer size safe vsprintf?
|
|
||||||
void
|
void
|
||||||
Con_Printf(char *fmt, ...)
|
Con_Printf(char *fmt, ...)
|
||||||
{
|
{
|
||||||
@ -313,7 +312,7 @@ Con_Printf(char *fmt, ...)
|
|||||||
static qboolean inupdate;
|
static qboolean inupdate;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(msg, fmt, argptr);
|
vsnprintf(msg, sizeof(msg), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
// also echo to debugging console
|
// also echo to debugging console
|
||||||
@ -375,7 +374,7 @@ Con_DPrintf(char *fmt, ...)
|
|||||||
return; // don't confuse non-developers with techie stuff...
|
return; // don't confuse non-developers with techie stuff...
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(msg, fmt, argptr);
|
vsnprintf(msg, sizeof(msg), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
Con_Printf("%s", msg);
|
Con_Printf("%s", msg);
|
||||||
@ -657,7 +656,7 @@ Con_SafePrintf(char *fmt, ...)
|
|||||||
int temp;
|
int temp;
|
||||||
|
|
||||||
va_start(argptr, fmt);
|
va_start(argptr, fmt);
|
||||||
vsprintf(msg, fmt, argptr);
|
vsnprintf(msg, sizeof(msg), fmt, argptr);
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
temp = scr_disabled_for_loading;
|
temp = scr_disabled_for_loading;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user