浏览代码

models/msg: limit single package length

fatedier 9 年之前
父节点
当前提交
1da81ad7d3
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/frp/models/msg/process.go

+ 5 - 0
src/frp/models/msg/process.go

@@ -146,6 +146,11 @@ func pipeDecrypt(r *conn.Conn, w *conn.Conn, conf config.BaseConf, needRecord bo
 		}
 		cnt, res, left = unpkgMsg(newBuf)
 		if cnt < 0 {
+			// limit one package length, maximum is 1MB
+			if len(res) > 1024*1024 {
+				log.Warn("ProxyName [%s], package length exceeds the limit")
+				return fmt.Errorf("package length error")
+			}
 			continue
 		}