Browse Source

models/msg: limit single package length

fatedier 9 years ago
parent
commit
1da81ad7d3
1 changed files with 5 additions and 0 deletions
  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)
 		cnt, res, left = unpkgMsg(newBuf)
 		if cnt < 0 {
 		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
 			continue
 		}
 		}