diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-08-30 21:10:56 +0200 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-09-13 23:21:37 +0200 |
commit | 89ad830bb1c0a290e9cd93d37de253db8f9a6eb5 (patch) | |
tree | 262fccf3316a5d4810126a3f42b10c5b3df8b89b /src | |
parent | 9985f1edf5f4b01661a92bada56b8db386e79c7b (diff) | |
download | manaserv-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.cpp | 10 |
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 |