mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-06-26 21:29:58 +00:00
Fix buffer leak in mkcp transport protocol (#3347)
This commit is contained in:
parent
1f2d76c066
commit
d2b2f8c1f3
@ -390,7 +390,9 @@ func (c *Connection) writeMultiBufferInternal(reader io.Reader) error {
|
||||
}()
|
||||
|
||||
var b *buf.Buffer
|
||||
defer b.Release()
|
||||
defer func() {
|
||||
b.Release()
|
||||
}()
|
||||
|
||||
for {
|
||||
for {
|
||||
@ -537,6 +539,7 @@ func (c *Connection) Terminate() {
|
||||
c.closer.Close()
|
||||
c.sendingWorker.Release()
|
||||
c.receivingWorker.Release()
|
||||
c.output.Release()
|
||||
}
|
||||
|
||||
func (c *Connection) HandleOption(opt SegmentOption) {
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
|
||||
type SegmentWriter interface {
|
||||
Write(seg Segment) error
|
||||
Release()
|
||||
}
|
||||
|
||||
type SimpleSegmentWriter struct {
|
||||
@ -36,6 +37,10 @@ func (w *SimpleSegmentWriter) Write(seg Segment) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (w *SimpleSegmentWriter) Release() {
|
||||
w.buffer.Release()
|
||||
}
|
||||
|
||||
type RetryableWriter struct {
|
||||
writer SegmentWriter
|
||||
}
|
||||
@ -51,3 +56,7 @@ func (w *RetryableWriter) Write(seg Segment) error {
|
||||
return w.writer.Write(seg)
|
||||
})
|
||||
}
|
||||
|
||||
func (w *RetryableWriter) Release() {
|
||||
w.writer.Release()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user