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:
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