[
https://issues.apache.org/jira/browse/HDDS-17141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HDDS-17141:
----------------------------------
Labels: pull-request-available (was: )
> S3 Gateway Range header parsing returns wrong status for unsatisfiable and
> malformed ranges
> -------------------------------------------------------------------------------------------
>
> Key: HDDS-17141
> URL: https://issues.apache.org/jira/browse/HDDS-17141
> Project: Apache Ozone
> Issue Type: Bug
> Reporter: Gargi Jaiswal
> Assignee: Gargi Jaiswal
> Priority: Major
> Labels: pull-request-available
>
> {color:#00875a}RangeHeaderParserUtil#parseRangeHeader{color} mishandles some
> edge-case Range values. Ozone returns 200 or 206 where AWS S3 returns 416
> InvalidRange, and in two cases sends a malformed Content-Range header. The
> parser is shared, so this affects *GetObject* today and *HeadObject* once
> [HDDS-14224|https://issues.apache.org/jira/browse/HDDS-14224] is merged.
> *Examples -> suppose 10-byte object is created*
> {code:java}
> || Range || Ozone || AWS S3 ||
> | bytes=10- | 200, full object | 416 InvalidRange |
> | bytes=-0 | 206, Content-Range: bytes 10-9/10 | 416 InvalidRange |
> | bytes=-5 (empty object) | 206, Content-Range: bytes 0--1/0 | 416
> InvalidRange |
> | bytes=- | 206, Content-Range: bytes 1-9/10 (drops byte 0) | 200, full
> object (header ignored) |{code}
> For comparison, bytes=10-20 already returns 416 correctly.
> *Reason*
> An empty end is replaced with length-1 before the "end beyond object" check,
> so bytes=10- is never marked invalid. Suffix ranges are not checked for a
> zero suffix length, a zero-length object, or a missing suffix value.
> *- Found while reviewing HDDS-14224 (PR
> https://github.com/apache/ozone/pull/11612)*
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]