diff --git a/pkg/bucket/object/lock/lock.go b/pkg/bucket/object/lock/lock.go index 276cae9e7..3acc85a80 100644 --- a/pkg/bucket/object/lock/lock.go +++ b/pkg/bucket/object/lock/lock.go @@ -337,7 +337,7 @@ func ParseObjectRetention(reader io.Reader) (*ObjectRetention, error) { if err := xml.NewDecoder(io.LimitReader(reader, maxObjectRetentionSize)).Decode(&ret); err != nil { return nil, err } - if !ret.Mode.Valid() { + if ret.Mode != "" && !ret.Mode.Valid() { return &ret, ErrUnknownWORMModeDirective } @@ -347,7 +347,7 @@ func ParseObjectRetention(reader io.Reader) (*ObjectRetention, error) { return &ret, ErrPastObjectLockRetainDate } - if ret.RetainUntilDate.Before(t) { + if !ret.RetainUntilDate.IsZero() && ret.RetainUntilDate.Before(t) { return &ret, ErrPastObjectLockRetainDate }