lib9p

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

commit 6c42146499ecb3aba36c46a0a621e59389137434
parent 3cdfcab0b1063046f41009165a4eb5b1b4365aae
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Wed, 29 Nov 2023 17:40:06 +0900

delete permission check for sWrite.
write is granted by Fid.omode

Diffstat:
Mserver.go | 9+--------
1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/server.go b/server.go @@ -506,7 +506,6 @@ func sCreate(ctx context.Context, s *Server, r *Req) { Respond(ctx, r, ErrPerm) return } -// cfdir, ok := r.Fid.File.(CreaterFile) cffs, ok := s.fs.(CreaterFS) if !ok { Respond(ctx, r, ErrOperation) @@ -519,7 +518,6 @@ func sCreate(ctx context.Context, s *Server, r *Req) { } else { perm &= ^FileMode(0777) | (dirperm & FileMode(0777)) } - //file, err := cfdir.Create(ifcall.Name, r.Fid.Uid, ifcall.Mode, perm) cpath := path.Join(r.Fid.path, ifcall.Name) file, err := cffs.Create(cpath, r.Fid.Uid, ifcall.Mode, perm) if err != nil { @@ -649,6 +647,7 @@ func rRead(r *Req, err error) { } } +// TODO: file can be created with ORDWR but without write permission. func sWrite(ctx context.Context, s *Server, r *Req) { ifcall := r.Ifcall.(*TWrite) var ok bool @@ -660,10 +659,6 @@ func sWrite(ctx context.Context, s *Server, r *Req) { if ifcall.Count > s.mSize()-IOHDRSZ { ifcall.Count = s.mSize() - IOHDRSZ } - if !hasPerm(r.Fid.File, r.Fid.Uid, AWRITE) { - Respond(ctx, r, ErrPerm) - return - } omode := r.Fid.OMode & 3 if omode != OWRITE && omode != ORDWR { Respond(ctx, r, fmt.Errorf("write on fid with open mode 0x%x", r.Fid.OMode)) @@ -759,13 +754,11 @@ func sRemove(ctx context.Context, s *Server, r *Req) { return } parent.Close() - //rfile, ok := r.Fid.File.(RemoverFile) rfs, ok := s.fs.(RemoverFS) if !ok { Respond(ctx, r, ErrOperation) return } - //if err := rfile.Remove(); err != nil { if err := rfs.Remove(r.Fid.path); err != nil { Respond(ctx, r, fmt.Errorf("remove: %v", err)) return