mse/mse.go | 4 ++++ diff --git a/mse/mse.go b/mse/mse.go index 421ade3fcba6813fee2bf5113264c6044bb30d5f..eb2480aaccf7247e2076276f7a6e8546907c6a68 100644 --- a/mse/mse.go +++ b/mse/mse.go @@ -366,6 +366,10 @@ h.postWrite(xor(hash(req2, h.skey), hash(req3, h.s[:]))) buf := &bytes.Buffer{} padLen := uint16(newPadLen()) err = marshal(buf, vc[:], uint32(cryptoMethodRC4), padLen, zeroPad[:padLen], uint16(len(h.ia)), h.ia) + if len(h.ia) > math.MaxUint16 { + err = errors.New("initial payload too large") + return + } if err != nil { return }