Skip to content

Commit e732470

Browse files
jcdong98yuhan6665
authored andcommitted
Fix memory leak caused by Wireguard outbound
1 parent cb7e081 commit e732470

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

proxy/wireguard/wireguard.go

+4
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
152152
if err != nil {
153153
return newError("failed to create TCP connection").Base(err)
154154
}
155+
defer conn.Close()
155156

156157
requestFunc = func() error {
157158
defer timer.SetTimeout(p.Timeouts.DownlinkOnly)
@@ -166,6 +167,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
166167
if err != nil {
167168
return newError("failed to create UDP connection").Base(err)
168169
}
170+
defer conn.Close()
169171

170172
requestFunc = func() error {
171173
defer timer.SetTimeout(p.Timeouts.DownlinkOnly)
@@ -183,6 +185,8 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
183185

184186
responseDonePost := task.OnSuccess(responseFunc, task.Close(link.Writer))
185187
if err := task.Run(ctx, requestFunc, responseDonePost); err != nil {
188+
common.Interrupt(link.Reader)
189+
common.Interrupt(link.Writer)
186190
return newError("connection ends").Base(err)
187191
}
188192

0 commit comments

Comments
 (0)