fs: fix FixRangeOption to do nothing on unknown sized objects

FixRangeOption shouldn't be called on an object of unknown size, but
if it is, make sure it does nothing.

See: #5642
This commit is contained in:
Nick Craig-Wood 2022-05-06 14:09:07 +01:00
parent f6fd6ee777
commit cf0a72aecd
2 changed files with 14 additions and 1 deletions

View file

@ -142,7 +142,10 @@ func (o *RangeOption) Decode(size int64) (offset, limit int64) {
// It also adjusts any SeekOption~s, turning them into absolute
// RangeOption~s instead.
func FixRangeOption(options []OpenOption, size int64) {
if size == 0 {
if size < 0 {
// Can't do anything for unknown length objects
return
} else if size == 0 {
// if size 0 then remove RangeOption~s
// replacing with a NullOptions~s which won't be rendered
for i := range options {