diff --git a/backend/common.go b/backend/common.go index b4ebf91..0bf5239 100644 --- a/backend/common.go +++ b/backend/common.go @@ -92,7 +92,7 @@ func ParseRange(fi fs.FileInfo, acceptRange string) (int64, int64, error) { return 0, 0, errInvalidRange } - if endOffset < startOffset { + if endOffset <= startOffset { return 0, 0, errInvalidRange } diff --git a/tests/integration/tests.go b/tests/integration/tests.go index b09f90f..4015a5c 100644 --- a/tests/integration/tests.go +++ b/tests/integration/tests.go @@ -3040,6 +3040,17 @@ func GetObject_invalid_ranges(s *S3Conf) error { if err := checkApiErr(err, s3err.GetAPIError(s3err.ErrInvalidRange)); err != nil { return err } + + ctx, cancel = context.WithTimeout(context.Background(), shortTimeout) + _, err = s3client.GetObject(ctx, &s3.GetObjectInput{ + Bucket: &bucket, + Key: &obj, + Range: getPtr("bytes=0-0"), + }) + cancel() + if err := checkApiErr(err, s3err.GetAPIError(s3err.ErrInvalidRange)); err != nil { + return err + } return nil }) }