[
https://issues.apache.org/jira/browse/OAK-3105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Dürig resolved OAK-3105.
--------------------------------
Resolution: Fixed
Fix Version/s: 1.0.18
1.3.3
1.2.3
Fixed in trunk at http://svn.apache.org/r1691210, 1.2 at
http://svn.apache.org/r1691214, and 1.0 at http://svn.apache.org/r1691212.
Thanks [~frm] for the patch!
> SegmentWriter doesn't properly check the length of external blob IDs
> --------------------------------------------------------------------
>
> Key: OAK-3105
> URL: https://issues.apache.org/jira/browse/OAK-3105
> Project: Jackrabbit Oak
> Issue Type: Bug
> Affects Versions: 1.2.2, 1.3.2, 1.0.17
> Reporter: Francesco Mari
> Assignee: Michael Dürig
> Priority: Critical
> Fix For: 1.2.3, 1.3.3, 1.0.18
>
> Attachments: OAK-3105-01.patch
>
>
> To store the length field of an external binary ID, the following encoding is
> used:
> {noformat}
> 1110 + 4bit + 8bit
> {noformat}
> which allows to store numbers between 0 and 2{^}12^ - 1.
> The current implementation of {{SegmentWriter}} allows the length of binary
> IDs to range between 0 and 2{^}13^ - 1, writing incorrect data when the
> length of the binary ID ranges from 2{^}12^ to 2{^}13^ - 1.
> When reading this incorrect data back, an {{IllegalStateException}} is thrown
> complaining that the first byte of the length fields has an unexpected value
> record type. See OAK-1842 for an example.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)