add a nil check for attributes

just defensive code

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2024-02-17 20:08:07 +01:00
parent 0d4e4175a8
commit 162376fd74

View File

@@ -353,23 +353,25 @@ func (c *Connection) handleSFTPSetstat(request *sftp.Request) error {
attrs := common.StatAttributes{ attrs := common.StatAttributes{
Flags: 0, Flags: 0,
} }
if request.AttrFlags().Permissions { if request.Attributes() != nil {
attrs.Flags |= common.StatAttrPerms if request.AttrFlags().Permissions {
attrs.Mode = request.Attributes().FileMode() attrs.Flags |= common.StatAttrPerms
} attrs.Mode = request.Attributes().FileMode()
if request.AttrFlags().UidGid { }
attrs.Flags |= common.StatAttrUIDGID if request.AttrFlags().UidGid {
attrs.UID = int(request.Attributes().UID) attrs.Flags |= common.StatAttrUIDGID
attrs.GID = int(request.Attributes().GID) attrs.UID = int(request.Attributes().UID)
} attrs.GID = int(request.Attributes().GID)
if request.AttrFlags().Acmodtime { }
attrs.Flags |= common.StatAttrTimes if request.AttrFlags().Acmodtime {
attrs.Atime = time.Unix(int64(request.Attributes().Atime), 0) attrs.Flags |= common.StatAttrTimes
attrs.Mtime = time.Unix(int64(request.Attributes().Mtime), 0) attrs.Atime = time.Unix(int64(request.Attributes().Atime), 0)
} attrs.Mtime = time.Unix(int64(request.Attributes().Mtime), 0)
if request.AttrFlags().Size { }
attrs.Flags |= common.StatAttrSize if request.AttrFlags().Size {
attrs.Size = int64(request.Attributes().Size) attrs.Flags |= common.StatAttrSize
attrs.Size = int64(request.Attributes().Size)
}
} }
return c.SetStat(request.Filepath, &attrs) return c.SetStat(request.Filepath, &attrs)