diff options
author | Christopher Schwarz <lakitu7@gmail.com> | 2009-10-03 12:42:33 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2013-01-03 00:16:10 +0000 |
commit | e61ff637eb96470e297875a975c6c2ec5b4e48cd (patch) | |
tree | cb6f02d63ad18185569a26374296fcd9ea23938c /src/qcommon | |
parent | 072babaf3ad07e65560db7861f8fe91bdbe1456a (diff) |
* Cleanup info_validate function and enforce that connecting clients must pass it (with thanks to Byron Johnson)
Diffstat (limited to 'src/qcommon')
-rw-r--r-- | src/qcommon/q_shared.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/qcommon/q_shared.c b/src/qcommon/q_shared.c index fc259219..07e3669c 100644 --- a/src/qcommon/q_shared.c +++ b/src/qcommon/q_shared.c @@ -1234,12 +1234,22 @@ can mess up the server's parsing ================== */ qboolean Info_Validate( const char *s ) { - if ( strchr( s, '\"' ) ) { - return qfalse; - } - if ( strchr( s, ';' ) ) { - return qfalse; + const char* ch = s; + + while ( *ch != '\0' ) + { + if( !Q_isprint( *ch ) ) + return qfalse; + + if( *ch == '\"' ) + return qfalse; + + if( *ch == ';' ) + return qfalse; + + ++ch; } + return qtrue; } |