mirror of
https://github.com/drakkan/sftpgo.git
synced 2024-06-03 00:42:12 +02:00
add a nil check for attributes
just defensive code Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
parent
0d4e4175a8
commit
162376fd74
|
@ -353,23 +353,25 @@ func (c *Connection) handleSFTPSetstat(request *sftp.Request) error {
|
|||
attrs := common.StatAttributes{
|
||||
Flags: 0,
|
||||
}
|
||||
if request.AttrFlags().Permissions {
|
||||
attrs.Flags |= common.StatAttrPerms
|
||||
attrs.Mode = request.Attributes().FileMode()
|
||||
}
|
||||
if request.AttrFlags().UidGid {
|
||||
attrs.Flags |= common.StatAttrUIDGID
|
||||
attrs.UID = int(request.Attributes().UID)
|
||||
attrs.GID = int(request.Attributes().GID)
|
||||
}
|
||||
if request.AttrFlags().Acmodtime {
|
||||
attrs.Flags |= common.StatAttrTimes
|
||||
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
|
||||
attrs.Size = int64(request.Attributes().Size)
|
||||
if request.Attributes() != nil {
|
||||
if request.AttrFlags().Permissions {
|
||||
attrs.Flags |= common.StatAttrPerms
|
||||
attrs.Mode = request.Attributes().FileMode()
|
||||
}
|
||||
if request.AttrFlags().UidGid {
|
||||
attrs.Flags |= common.StatAttrUIDGID
|
||||
attrs.UID = int(request.Attributes().UID)
|
||||
attrs.GID = int(request.Attributes().GID)
|
||||
}
|
||||
if request.AttrFlags().Acmodtime {
|
||||
attrs.Flags |= common.StatAttrTimes
|
||||
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
|
||||
attrs.Size = int64(request.Attributes().Size)
|
||||
}
|
||||
}
|
||||
|
||||
return c.SetStat(request.Filepath, &attrs)
|
||||
|
|
Loading…
Reference in a new issue