Avoid std::bad_alloc for negative bencode string length. * src/bencode.cc
@@ -1,3 +1,8 @@
+2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
+
+ Avoid std::bad_alloc for negative bencode string length.
+ * src/bencode.cc
2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Supported segmented downloading with chunked transfer encoding and
@@ -57,9 +57,9 @@ static void checkdelim(std::istream& ss, const char delim = ':')
static std::string decoderawstring(std::istream& ss)
{
- size_t length;
+ int length;
ss >> length;
- if(!ss) {
+ if(!ss || length < 0) {
throw RecoverableException("A positive integer expected but none found.");
}
// TODO check length, it must be less than or equal to INT_MAX