about summary refs log tree commit diff
path: root/src/game/server/gamecontext.cpp
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-10-25 18:30:35 +0200
committeroy <Tom_Adams@web.de>2010-10-25 18:30:35 +0200
commit8ca6a28088f805d8f7599beb0fab0e8dc8bd7d9c (patch)
tree363a5e8f59eb88529434e58882278d8e6e03fd6b /src/game/server/gamecontext.cpp
parent12b8b629edb3acfc92851aa301f15bc9827d812d (diff)
downloadzcatch-8ca6a28088f805d8f7599beb0fab0e8dc8bd7d9c.tar.gz
zcatch-8ca6a28088f805d8f7599beb0fab0e8dc8bd7d9c.zip
parse line on addvote and skip invalid ones
Diffstat (limited to 'src/game/server/gamecontext.cpp')
-rw-r--r--src/game/server/gamecontext.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp
index ce3be58f..4d19dd53 100644
--- a/src/game/server/gamecontext.cpp
+++ b/src/game/server/gamecontext.cpp
@@ -905,6 +905,15 @@ void CGameContext::ConSetTeam(IConsole::IResult *pResult, void *pUserData)
 void CGameContext::ConAddVote(IConsole::IResult *pResult, void *pUserData)
 {
 	CGameContext *pSelf = (CGameContext *)pUserData;
+	// check for valid option
+	if(!pSelf->Console()->LineIsValid(pResult->GetString(0)))
+	{
+		char aBuf[256];
+		str_format(aBuf, sizeof(aBuf), "skipped invalid option '%s'", pResult->GetString(0));
+		pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aBuf);
+		return;
+	}
+
 	int Len = str_length(pResult->GetString(0));
 	
 	CGameContext::CVoteOption *pOption = (CGameContext::CVoteOption *)pSelf->m_pVoteOptionHeap->Allocate(sizeof(CGameContext::CVoteOption) + Len);