Fix buffer not released in batchLoopDarwin
This commit is contained in:
parent
1664d083fb
commit
31c44bc478
2 changed files with 4 additions and 0 deletions
|
|
@ -184,6 +184,7 @@ func (m *Mixed) batchLoopDarwin(darwinTUN DarwinTUN) {
|
||||||
for _, buffer := range buffers {
|
for _, buffer := range buffers {
|
||||||
packetSize := buffer.Len()
|
packetSize := buffer.Len()
|
||||||
if packetSize < header.IPv4MinimumSize {
|
if packetSize < header.IPv4MinimumSize {
|
||||||
|
buffer.Release()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if m.processPacket(buffer.Bytes()) {
|
if m.processPacket(buffer.Bytes()) {
|
||||||
|
|
@ -197,6 +198,7 @@ func (m *Mixed) batchLoopDarwin(darwinTUN DarwinTUN) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.logger.Trace(E.Cause(err, "batch write packet"))
|
m.logger.Trace(E.Cause(err, "batch write packet"))
|
||||||
}
|
}
|
||||||
|
buf.ReleaseMulti(writeBuffers)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -281,6 +281,7 @@ func (s *System) batchLoopDarwin(darwinTUN DarwinTUN) {
|
||||||
for _, buffer := range buffers {
|
for _, buffer := range buffers {
|
||||||
packetSize := buffer.Len()
|
packetSize := buffer.Len()
|
||||||
if packetSize < header.IPv4MinimumSize {
|
if packetSize < header.IPv4MinimumSize {
|
||||||
|
buffer.Release()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if s.processPacket(buffer.Bytes()) {
|
if s.processPacket(buffer.Bytes()) {
|
||||||
|
|
@ -294,6 +295,7 @@ func (s *System) batchLoopDarwin(darwinTUN DarwinTUN) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Trace(E.Cause(err, "batch write packet"))
|
s.logger.Trace(E.Cause(err, "batch write packet"))
|
||||||
}
|
}
|
||||||
|
buf.ReleaseMulti(writeBuffers)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue