Merge pull request #1234 from versity/sis/tagging-parse-errs

fix: handles tag parsing error cases for PutBucketTagging and PutObjectTagging
This commit is contained in:
Ben McClelland
2025-04-23 14:51:37 -07:00
committed by GitHub
9 changed files with 330 additions and 92 deletions

View File

@@ -1041,10 +1041,10 @@ func (az *Azure) CreateMultipartUpload(ctx context.Context, input s3response.Cre
for _, prt := range tagParts {
p := strings.Split(prt, "=")
if len(p) != 2 {
return s3response.InitiateMultipartUploadResult{}, s3err.GetAPIError(s3err.ErrInvalidTag)
return s3response.InitiateMultipartUploadResult{}, s3err.GetAPIError(s3err.ErrInvalidTagValue)
}
if len(p[0]) > 128 || len(p[1]) > 256 {
return s3response.InitiateMultipartUploadResult{}, s3err.GetAPIError(s3err.ErrInvalidTag)
return s3response.InitiateMultipartUploadResult{}, s3err.GetAPIError(s3err.ErrInvalidTagValue)
}
tags[p[0]] = p[1]
}
@@ -1827,7 +1827,7 @@ func parseTags(tagstr *string) (map[string]string, error) {
for _, prt := range tagParts {
p := strings.Split(prt, "=")
if len(p) != 2 {
return nil, s3err.GetAPIError(s3err.ErrInvalidTag)
return nil, s3err.GetAPIError(s3err.ErrInvalidTagValue)
}
tags[p[0]] = p[1]
}

View File

@@ -40,7 +40,7 @@ func azErrToS3err(azErr *azcore.ResponseError) s3err.APIError {
case "BlobNotFound":
return s3err.GetAPIError(s3err.ErrNoSuchKey)
case "TagsTooLarge":
return s3err.GetAPIError(s3err.ErrInvalidTag)
return s3err.GetAPIError(s3err.ErrInvalidTagValue)
case "Requested Range Not Satisfiable":
return s3err.GetAPIError(s3err.ErrInvalidRange)
}

View File

@@ -227,10 +227,10 @@ func ParseObjectTags(t string) (map[string]string, error) {
for _, prt := range tagParts {
p := strings.Split(prt, "=")
if len(p) != 2 {
return nil, s3err.GetAPIError(s3err.ErrInvalidTag)
return nil, s3err.GetAPIError(s3err.ErrInvalidTagValue)
}
if len(p[0]) > 128 || len(p[1]) > 256 {
return nil, s3err.GetAPIError(s3err.ErrInvalidTag)
return nil, s3err.GetAPIError(s3err.ErrInvalidTagValue)
}
tagging[p[0]] = p[1]
}