fix(objectnode): add range get check

with #23042024

Signed-off-by: tangdeyi <tangdeyi@oppo.com>
This commit is contained in:
tangdeyi 2025-02-14 09:44:03 +08:00 committed by zhumingze1108
parent fe6e5acf47
commit 77979034f5

View File

@ -176,13 +176,23 @@ func (o *ObjectNode) getObjectHandler(w http.ResponseWriter, r *http.Request) {
if isRangeRead && rangeUpper > uint64(fileInfo.Size)-1 {
rangeUpper = uint64(fileInfo.Size) - 1
if revRange && rangeLower > 0 {
rangeLower = rangeUpper + 1 - rangeLower
if rangeLower > rangeUpper+1 {
rangeLower = 0
} else {
rangeLower = rangeUpper + 1 - rangeLower
}
}
}
// compute content length
contentLength := uint64(fileInfo.Size)
if isRangeRead {
if rangeUpper < rangeLower {
log.LogErrorf("getObjectHandler: invalid range header: requestID(%v) volume(%v) path(%v) rangeOpt(%v)",
GetRequestID(r), param.Bucket(), param.Object(), rangeOpt)
errorCode = InvalidRange
return
}
contentLength = rangeUpper - rangeLower + 1
}