diff options
author | Joao Eduardo Luis <joao.luis@inktank.com> | 2012-11-29 21:03:05 +0000 |
---|---|---|
committer | Joao Eduardo Luis <joao.luis@inktank.com> | 2012-11-29 21:03:05 +0000 |
commit | 079dd190446bedb928518f095933c9881011fa43 (patch) | |
tree | 7c8684e4fb5e2bbbbc2fd40b0755dd198102b2c7 | |
parent | c6cc476f18648ffeeacd21f45e5695580103f92b (diff) | |
download | ceph-079dd190446bedb928518f095933c9881011fa43.tar.gz |
mon: Monitor: don't allow '+' or '-' prefixed values on parse_pos_long()
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r-- | src/mon/Monitor.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 79f257783e7..eee9e446e6b 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -83,6 +83,11 @@ static ostream& _prefix(std::ostream *_dout, const Monitor *mon) { long parse_pos_long(const char *s, ostream *pss) { + if (*s == '-' || *s == '+') { + *pss << "expected numerical value, got: " << s; + return -EINVAL; + } + string err; long r = strict_strtol(s, 10, &err); if ((r == 0) && !err.empty()) { |