@@ -176,7 +176,7 @@ void C_CreateTimeStamp(const int index)
176176 console [index ].timestamp = * currenttime ;
177177}
178178
179- static void C_StoreConsoleString (char * dest , const char * src )
179+ static void C_StoreConsoleString (char * dest , const char * src , const size_t dest_size )
180180{
181181#if defined(_WIN32 )
182182 char codepage [8 ] = "" ;
@@ -193,14 +193,14 @@ static void C_StoreConsoleString(char *dest, const char *src)
193193 if (MultiByteToWideChar (CP_UTF8 , MB_ERR_INVALID_CHARS , src , -1 , wide , arrlen (wide ))
194194 && WideCharToMultiByte (consolecodepage , 0 , wide , -1 , buffer , (int )sizeof (buffer ), NULL , NULL ))
195195 {
196- M_StringCopy (dest , buffer , sizeof ( dest ) );
196+ M_StringCopy (dest , buffer , dest_size );
197197 return ;
198198 }
199199 }
200200 }
201201#endif
202202
203- M_StringCopy (dest , src , sizeof ( dest ) );
203+ M_StringCopy (dest , src , dest_size );
204204}
205205
206206void C_Input (const char * string , ...)
@@ -218,7 +218,7 @@ void C_Input(const char *string, ...)
218218 if (numconsolestrings >= (int )consolestringsmax )
219219 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
220220
221- C_StoreConsoleString (console [numconsolestrings ].string , buffer );
221+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof ( console [ 0 ]. string ) );
222222 console [numconsolestrings ].indent = 0 ;
223223 console [numconsolestrings ].wrap = 0 ;
224224 console [numconsolestrings ++ ].stringtype = inputstring ;
@@ -306,7 +306,7 @@ void C_Output(const char *string, ...)
306306 if (numconsolestrings >= (int )consolestringsmax )
307307 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
308308
309- C_StoreConsoleString (console [numconsolestrings ].string , buffer );
309+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof ( console [ 0 ]. string ) );
310310 console [numconsolestrings ].string [0 ] = toupper (console [numconsolestrings ].string [0 ]);
311311 console [numconsolestrings ].indent = 0 ;
312312 console [numconsolestrings ].wrap = 0 ;
@@ -326,7 +326,7 @@ void C_TabbedOutput(const int tabs[MAXTABS], const char *string, ...)
326326 if (numconsolestrings >= (int )consolestringsmax )
327327 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
328328
329- C_StoreConsoleString (console [numconsolestrings ].string , buffer );
329+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof ( console [ 0 ]. string ) );
330330 console [numconsolestrings ].stringtype = outputstring ;
331331 memcpy (console [numconsolestrings ].tabs , tabs , sizeof (console [0 ].tabs ));
332332 console [numconsolestrings ].indent = (tabs [2 ] ? tabs [2 ] : (tabs [1 ] ? tabs [1 ] : tabs [0 ])) - 10 ;
@@ -343,7 +343,7 @@ void C_Header(const int tabs[MAXTABS], patch_t *header, const char *string)
343343 memcpy (console [numconsolestrings ].tabs , tabs , sizeof (console [0 ].tabs ));
344344 console [numconsolestrings ].header = header ;
345345 console [numconsolestrings ].wrap = 0 ;
346- C_StoreConsoleString (console [numconsolestrings ++ ].string , string );
346+ C_StoreConsoleString (console [numconsolestrings ++ ].string , string , sizeof ( console [ 0 ]. string ) );
347347 outputhistory = -1 ;
348348}
349349
@@ -364,7 +364,7 @@ void C_Warning(const int warninglevel, const char *string, ...)
364364 if (numconsolestrings >= (int )consolestringsmax )
365365 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
366366
367- M_StringCopy (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
367+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
368368 console [numconsolestrings ].indent = WARNINGWIDTH + 2 ;
369369 console [numconsolestrings ].wrap = 0 ;
370370 console [numconsolestrings ].stringtype = warningstring ;
@@ -396,7 +396,7 @@ void C_PlayerMessage(const char *string, ...)
396396 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
397397
398398 M_StringReplaceAll (buffer , "\n" , " " , false);
399- M_StringCopy (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
399+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
400400 console [numconsolestrings ].stringtype = playermessagestring ;
401401 C_CreateTimeStamp (numconsolestrings );
402402 console [numconsolestrings ].string [0 ] = toupper (console [numconsolestrings ].string [0 ]);
@@ -420,7 +420,7 @@ void C_PlayerWarning(const char *string, ...)
420420 if (numconsolestrings >= (int )consolestringsmax )
421421 console = I_Realloc (console , (consolestringsmax += CONSOLESTRINGSMAX ) * sizeof (* console ));
422422
423- M_StringCopy (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
423+ C_StoreConsoleString (console [numconsolestrings ].string , buffer , sizeof (console [0 ].string ));
424424 console [numconsolestrings ].stringtype = playerwarningstring ;
425425 C_CreateTimeStamp (numconsolestrings );
426426 console [numconsolestrings ].string [0 ] = toupper (console [numconsolestrings ].string [0 ]);
0 commit comments