Skip to content

Commit 1b67f21

Browse files
committed
Fix buffer not released in batchLoopDarwin
1 parent c15a3c7 commit 1b67f21

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

stack_mixed.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ func (m *Mixed) batchLoopDarwin(darwinTUN DarwinTUN) {
184184
for _, buffer := range buffers {
185185
packetSize := buffer.Len()
186186
if packetSize < header.IPv4MinimumSize {
187+
buffer.Release()
187188
continue
188189
}
189190
if m.processPacket(buffer.Bytes()) {
@@ -197,6 +198,7 @@ func (m *Mixed) batchLoopDarwin(darwinTUN DarwinTUN) {
197198
if err != nil {
198199
m.logger.Trace(E.Cause(err, "batch write packet"))
199200
}
201+
buf.ReleaseMulti(writeBuffers)
200202
}
201203
}
202204
}

stack_system.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ func (s *System) batchLoopDarwin(darwinTUN DarwinTUN) {
281281
for _, buffer := range buffers {
282282
packetSize := buffer.Len()
283283
if packetSize < header.IPv4MinimumSize {
284+
buffer.Release()
284285
continue
285286
}
286287
if s.processPacket(buffer.Bytes()) {
@@ -294,6 +295,7 @@ func (s *System) batchLoopDarwin(darwinTUN DarwinTUN) {
294295
if err != nil {
295296
s.logger.Trace(E.Cause(err, "batch write packet"))
296297
}
298+
buf.ReleaseMulti(writeBuffers)
297299
}
298300
}
299301
}

0 commit comments

Comments
 (0)