commit 220340ac9b0a1ad56cd77e4fc5ac72f5358cc8eb
parent fa270be7d0b626e8c234971a89d2d8930ab66114
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sun, 17 Dec 2023 12:12:49 +0900
fix fd leak
Diffstat:
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 {