[ioquake3] 05/34: Check for all command separators in callTeamVote

Simon McVittie smcv at debian.org
Fri Sep 8 10:33:19 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag debian/1.36+u20170908+dfsg1-1
in repository ioquake3.

commit f0b74a27c97f6b03cc270d0536a77bdfcc1e8fad
Author: Zack Middleton <zack at cloemail.com>
Date:   Wed Aug 9 18:27:39 2017 -0500

    Check for all command separators in callTeamVote
    
    Make callTeamVote check for all command separators like in callVote.
    It's not exploitable as the only vote option (leader) always uses an
    integer argument.
    
    Also the ioquake3 engine remove command separators from client game
    commands in Cmd_Args_Sanitize().
---
 code/game/g_cmds.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/code/game/g_cmds.c b/code/game/g_cmds.c
index 46a69ca..b02a19e 100644
--- a/code/game/g_cmds.c
+++ b/code/game/g_cmds.c
@@ -1489,9 +1489,16 @@ void Cmd_CallTeamVote_f( gentity_t *ent ) {
 		trap_Argv( i, &arg2[strlen(arg2)], sizeof( arg2 ) - strlen(arg2) );
 	}
 
-	if( strchr( arg1, ';' ) || strchr( arg2, ';' ) ) {
-		trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
-		return;
+	// check for command separators in arg2
+	for( c = arg2; *c; ++c) {
+		switch(*c) {
+			case '\n':
+			case '\r':
+			case ';':
+				trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
+				return;
+			break;
+		}
 	}
 
 	if ( !Q_stricmp( arg1, "leader" ) ) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/ioquake3.git



More information about the Pkg-games-commits mailing list