summaryrefslogtreecommitdiff
path: root/src/qcommon
diff options
context:
space:
mode:
authorChristopher Schwarz <lakitu7@gmail.com>2009-10-03 12:42:33 +0000
committerTim Angus <tim@ngus.net>2013-01-03 00:16:10 +0000
commite61ff637eb96470e297875a975c6c2ec5b4e48cd (patch)
treecb6f02d63ad18185569a26374296fcd9ea23938c /src/qcommon
parent072babaf3ad07e65560db7861f8fe91bdbe1456a (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.c20
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;
}