engine: client: fix infostring truncation in NetAPI requests
This commit is contained in:
parent
dabbe09918
commit
ab130ee92c
1 changed files with 5 additions and 5 deletions
|
@ -1748,7 +1748,7 @@ CL_FixupColorStringsForInfoString
|
||||||
all the keys and values must be ends with ^7
|
all the keys and values must be ends with ^7
|
||||||
=================
|
=================
|
||||||
*/
|
*/
|
||||||
static void CL_FixupColorStringsForInfoString( const char *in, char *out )
|
static void CL_FixupColorStringsForInfoString( const char *in, char *out, size_t len )
|
||||||
{
|
{
|
||||||
qboolean hasPrefix = false;
|
qboolean hasPrefix = false;
|
||||||
qboolean endOfKeyVal = false;
|
qboolean endOfKeyVal = false;
|
||||||
|
@ -1761,7 +1761,7 @@ static void CL_FixupColorStringsForInfoString( const char *in, char *out )
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while( *in && count < MAX_INFO_STRING )
|
while( *in && count < len )
|
||||||
{
|
{
|
||||||
if( IsColorString( in ))
|
if( IsColorString( in ))
|
||||||
color = ColorIndex( *(in+1));
|
color = ColorIndex( *(in+1));
|
||||||
|
@ -1832,7 +1832,7 @@ static void CL_ParseStatusMessage( netadr_t from, sizebuf_t *msg )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CL_FixupColorStringsForInfoString( s, infostring );
|
CL_FixupColorStringsForInfoString( s, infostring, sizeof( infostring ));
|
||||||
|
|
||||||
if( !COM_CheckString( Info_ValueForKey( infostring, "gamedir" )))
|
if( !COM_CheckString( Info_ValueForKey( infostring, "gamedir" )))
|
||||||
{
|
{
|
||||||
|
@ -1864,7 +1864,7 @@ Handle a reply from a netinfo
|
||||||
static void CL_ParseNETInfoMessage( netadr_t from, const char *s )
|
static void CL_ParseNETInfoMessage( netadr_t from, const char *s )
|
||||||
{
|
{
|
||||||
net_request_t *nr = NULL;
|
net_request_t *nr = NULL;
|
||||||
static char infostring[MAX_INFO_STRING+8];
|
static char infostring[MAX_PRINT_MSG];
|
||||||
int i, context, type;
|
int i, context, type;
|
||||||
int errorBits = 0;
|
int errorBits = 0;
|
||||||
const char *val;
|
const char *val;
|
||||||
|
@ -1902,7 +1902,7 @@ static void CL_ParseNETInfoMessage( netadr_t from, const char *s )
|
||||||
else if( !Q_stricmp( val, "forbidden" ))
|
else if( !Q_stricmp( val, "forbidden" ))
|
||||||
SetBits( errorBits, NET_ERROR_FORBIDDEN );
|
SetBits( errorBits, NET_ERROR_FORBIDDEN );
|
||||||
|
|
||||||
CL_FixupColorStringsForInfoString( s, infostring );
|
CL_FixupColorStringsForInfoString( s, infostring, sizeof( infostring ));
|
||||||
}
|
}
|
||||||
|
|
||||||
// setup the answer
|
// setup the answer
|
||||||
|
|
Loading…
Add table
Reference in a new issue