lib9p

Go 9P library.
Log | Files | Refs | LICENSE

commit 220340ac9b0a1ad56cd77e4fc5ac72f5358cc8eb
parent fa270be7d0b626e8c234971a89d2d8930ab66114
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sun, 17 Dec 2023 12:12:49 +0900

fix fd leak

Diffstat:
Mserver.go | 7+++++++
1 file changed, 7 insertions(+), 0 deletions(-)

diff --git a/server.go b/server.go @@ -356,6 +356,12 @@ func sWalk(ctx context.Context, s *Server, r *Req) { var n int // TODO: replace this block with fs.WalkDir. for i, name := range ifcall.Wnames { + if i > 0 { + if err := cwdf.Close(); err != nil { + log.Printf("close: %v", err) + break + } + } cwdp = path.Join(cwdp, name) cwdf, err = s.fs.OpenFile(cwdp, OREAD) if err != nil { @@ -475,6 +481,7 @@ func rOpen(r *Req, err error) { setError(r, err) return } + r.Fid.File.Close() r.Fid.OMode = r.Ifcall.(*TOpen).Mode f, err := r.Srv.fs.OpenFile(r.Fid.path, r.Fid.OMode) if err != nil {