Commit b13a0f5b by ziyue

Splitter: 全局限制内存使用量,防止内存溢出

parent 0281cb6a
......@@ -13,9 +13,16 @@
#include "Util/util.h"
using namespace toolkit;
//协议解析最大缓存1兆数据
static constexpr size_t kMaxCacheSize = 1 * 1024 * 1024;
namespace mediakit {
void HttpRequestSplitter::input(const char *data,size_t len) {
if (remainDataSize() > kMaxCacheSize) {
//缓存太多数据无法处理则上抛异常
throw std::out_of_range("remain data size is too huge:" + to_string(remainDataSize()));
}
const char *ptr = data;
if(!_remain_data.empty()){
_remain_data.append(data,len);
......
......@@ -71,11 +71,6 @@ const char *PSDecoder::onSearchPacketTail(const char *data, size_t len) {
InfoL << "解析 ps 异常: bytes=" << len
<< ", exception=" << ex.what()
<< ", hex=" << hexdump(data, MIN(len, 32));
if (remainDataSize() > 256 * 1024) {
//缓存太多数据无法处理则上抛异常
throw;
}
return nullptr;
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论