mirror of
https://github.com/versity/versitygw.git
synced 2026-08-16 12:16:14 +00:00
Merge pull request #2270 from versity/ben/maxparts
fix: honor mpMaxParts across partNumber validation
This commit is contained in:
@@ -84,6 +84,14 @@ func (c S3ApiController) getAclHeaderValue(ctx fiber.Ctx, key string, defaultVal
|
||||
return ctx.Get(key, defaultValues...)
|
||||
}
|
||||
|
||||
func (c S3ApiController) effectiveMpMaxParts() int {
|
||||
if c.mpMaxParts > 0 {
|
||||
return c.mpMaxParts
|
||||
}
|
||||
|
||||
return maxPartNumber
|
||||
}
|
||||
|
||||
// Returns MethodNotAllowed for unmatched routes
|
||||
func (c S3ApiController) HandleErrorRoute(err error) Controller {
|
||||
return func(ctx fiber.Ctx) (*Response, error) {
|
||||
|
||||
@@ -451,7 +451,7 @@ func (c S3ApiController) GetObject(ctx fiber.Ctx) (*Response, error) {
|
||||
|
||||
var partNumber *int32
|
||||
if ctx.Request().URI().QueryArgs().Has("partNumber") {
|
||||
if partNumberQuery < minPartNumber || partNumberQuery > maxPartNumber {
|
||||
if partNumberQuery < minPartNumber || partNumberQuery > int32(c.effectiveMpMaxParts()) {
|
||||
debuglogger.Logf("invalid part number: %d", partNumberQuery)
|
||||
return &Response{
|
||||
MetaOpts: &MetaOptions{
|
||||
|
||||
@@ -99,7 +99,7 @@ func (c S3ApiController) HeadObject(ctx fiber.Ctx) (*Response, error) {
|
||||
|
||||
var partNumber *int32
|
||||
if ctx.Request().URI().QueryArgs().Has("partNumber") {
|
||||
if partNumberQuery < minPartNumber || partNumberQuery > maxPartNumber {
|
||||
if partNumberQuery < minPartNumber || partNumberQuery > int32(c.effectiveMpMaxParts()) {
|
||||
debuglogger.Logf("invalid part number: %d", partNumberQuery)
|
||||
return &Response{
|
||||
MetaOpts: &MetaOptions{
|
||||
|
||||
@@ -255,7 +255,7 @@ func (c S3ApiController) UploadPart(ctx fiber.Ctx) (*Response, error) {
|
||||
}, err
|
||||
}
|
||||
|
||||
if partNumber < minPartNumber || partNumber > int32(c.mpMaxParts) {
|
||||
if partNumber < minPartNumber || partNumber > int32(c.effectiveMpMaxParts()) {
|
||||
debuglogger.Logf("invalid part number: %d", partNumber)
|
||||
return &Response{
|
||||
MetaOpts: &MetaOptions{
|
||||
@@ -390,7 +390,7 @@ func (c S3ApiController) UploadPartCopy(ctx fiber.Ctx) (*Response, error) {
|
||||
}, s3err.GetAPIError(s3err.ErrNonEmptyRequestBody)
|
||||
}
|
||||
|
||||
if partNumber < minPartNumber || partNumber > maxPartNumber {
|
||||
if partNumber < minPartNumber || partNumber > int32(c.effectiveMpMaxParts()) {
|
||||
debuglogger.Logf("invalid part number: %d", partNumber)
|
||||
return &Response{
|
||||
MetaOpts: &MetaOptions{
|
||||
|
||||
Reference in New Issue
Block a user