Преглед изворни кода

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
 		}