From 2f4393d17c7120912ad7b2b820b46124010a5a5e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 12 Nov 2011 01:06:52 +0900 Subject: Rewritten parse*Int --- src/bencode2.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/bencode2.cc') diff --git a/src/bencode2.cc b/src/bencode2.cc index 74198b0d..78071879 100644 --- a/src/bencode2.cc +++ b/src/bencode2.cc @@ -63,7 +63,8 @@ decoderawstring(InputIterator first, InputIterator last) InputIterator i = first; int32_t len; for(; i != last && *i != ':'; ++i); - if(i == last || i == first || !util::parseIntNoThrow(len, first, i) || + if(i == last || i == first || + !util::parseIntNoThrow(len, std::string(first, i)) || len < 0) { throw DL_ABORT_EX2("Bencode decoding failed:" " A positive integer expected but none found.", @@ -100,7 +101,7 @@ decodeinteger(InputIterator first, InputIterator last) InputIterator i = first; for(; i != last && *i != 'e'; ++i); Integer::ValueType iv; - if(i == last || !util::parseLLIntNoThrow(iv, first, i)) { + if(i == last || !util::parseLLIntNoThrow(iv, std::string(first, i))) { throw DL_ABORT_EX2("Bencode decoding failed:" " Integer expected but none found", error_code::BENCODE_PARSE_ERROR); -- cgit