Pārlūkot izejas kodu

models/msg: limit single package length

fatedier 9 gadi atpakaļ
vecāks
revīzija
1da81ad7d3
1 mainītis faili ar 5 papildinājumiem un 0 dzēšanām
  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
 		}