summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-08-30 21:10:56 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-09-13 23:21:37 +0200
commit89ad830bb1c0a290e9cd93d37de253db8f9a6eb5 (patch)
tree262fccf3316a5d4810126a3f42b10c5b3df8b89b /src
parent9985f1edf5f4b01661a92bada56b8db386e79c7b (diff)
downloadmanaserv-89ad830bb1c0a290e9cd93d37de253db8f9a6eb5.tar.gz
manaserv-89ad830bb1c0a290e9cd93d37de253db8f9a6eb5.tar.bz2
manaserv-89ad830bb1c0a290e9cd93d37de253db8f9a6eb5.tar.xz
manaserv-89ad830bb1c0a290e9cd93d37de253db8f9a6eb5.zip
Avoid crashing the game server when the last argument is quoted.
Resolves: Mana-Mantis #386 Reviewed-by: o11c.
Diffstat (limited to 'src')
-rw-r--r--src/game-server/commandhandler.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/game-server/commandhandler.cpp b/src/game-server/commandhandler.cpp
index f0cbcf3b..189da538 100644
--- a/src/game-server/commandhandler.cpp
+++ b/src/game-server/commandhandler.cpp
@@ -186,7 +186,15 @@ static std::string getArgument(std::string &args)
// Jumps to the next parameter,
// after the ending double-quote and space,
// and remove the two double-quotes before returning.
- args = args.substr(pos + 2);
+ if (pos + 2 < args.size())
+ {
+ args = args.substr(pos + 2);
+ }
+ else
+ {
+ // This was the last argument
+ args.clear();
+ }
argument = argument.substr(1, pos - 1);
}
else