Fix buffer overflow handling for string_body and mutable_body

fix #553, fix #558
This commit is contained in:
octopus-prime
2017-07-20 08:15:29 -07:00
committed by Vinnie Falco
parent c149321013
commit ebfc3f4537
3 changed files with 27 additions and 16 deletions
+13 -10
View File
@@ -90,18 +90,21 @@ struct string_body
if(*content_length > (std::numeric_limits<
std::size_t>::max)())
{
ec = make_error_code(
errc::not_enough_memory);
ec = error::buffer_overflow;
return;
}
try
{
body_.reserve(static_cast<
std::size_t>(*content_length));
}
catch(std::exception const&)
{
ec = error::buffer_overflow;
return;
}
ec.assign(0, ec.category());
body_.reserve(static_cast<
std::size_t>(*content_length));
}
else
{
ec.assign(0, ec.category());
}
ec.assign(0, ec.category());
}
template<class ConstBufferSequence>
@@ -117,7 +120,7 @@ struct string_body
{
body_.resize(len + n);
}
catch(std::length_error const&)
catch(std::exception const&)
{
ec = error::buffer_overflow;
return 0;