Skip to content

Commit

Permalink
include offending string in error message for varables that contain
Browse files Browse the repository at this point in the history
blacklisted characters
  • Loading branch information
lnussel committed Dec 30, 2006
1 parent 91e54c0 commit 1bc190c
Showing 1 changed file with 15 additions and 31 deletions.
46 changes: 15 additions & 31 deletions code/qcommon/q_shared.c
Expand Up @@ -1187,29 +1187,21 @@ Changes or adds a key/value pair
*/
void Info_SetValueForKey( char *s, const char *key, const char *value ) {
char newi[MAX_INFO_STRING];
const char* blacklist = "\\;\"";

if ( strlen( s ) >= MAX_INFO_STRING ) {
Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" );
}

if (strchr (key, '\\') || strchr (value, '\\'))
for(; *blacklist; ++blacklist)
{
Com_Printf ("Can't use keys or values with a \\\n");
return;
}

if (strchr (key, ';') || strchr (value, ';'))
{
Com_Printf ("Can't use keys or values with a semicolon\n");
return;
}

if (strchr (key, '\"') || strchr (value, '\"'))
{
Com_Printf ("Can't use keys or values with a \"\n");
return;
if (strchr (key, *blacklist) || strchr (value, *blacklist))
{
Com_Printf (S_COLOR_YELLOW "Can't use keys or values with a '%c': %s = %s\n", *blacklist, key, value);
return;
}
}

Info_RemoveKey (s, key);
if (!value || !strlen(value))
return;
Expand All @@ -1235,27 +1227,19 @@ Changes or adds a key/value pair
*/
void Info_SetValueForKey_Big( char *s, const char *key, const char *value ) {
char newi[BIG_INFO_STRING];
const char* blacklist = "\\;\"";

if ( strlen( s ) >= BIG_INFO_STRING ) {
Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" );
}

if (strchr (key, '\\') || strchr (value, '\\'))
for(; *blacklist; ++blacklist)
{
Com_Printf ("Can't use keys or values with a \\\n");
return;
}

if (strchr (key, ';') || strchr (value, ';'))
{
Com_Printf ("Can't use keys or values with a semicolon\n");
return;
}

if (strchr (key, '\"') || strchr (value, '\"'))
{
Com_Printf ("Can't use keys or values with a \"\n");
return;
if (strchr (key, *blacklist) || strchr (value, *blacklist))
{
Com_Printf (S_COLOR_YELLOW "Can't use keys or values with a '%c': %s = %s\n", *blacklist, key, value);
return;
}
}

Info_RemoveKey_Big (s, key);
Expand Down

0 comments on commit 1bc190c

Please sign in to comment.