On Mon, Aug 7, 2017 at 11:30 AM, Shawn Pearce <spea...@spearce.org> wrote:
> On Mon, Aug 7, 2017 at 11:27 AM, Stefan Beller <sbel...@google.com> wrote:
>> On Sun, Aug 6, 2017 at 6:47 PM, Shawn Pearce <spea...@spearce.org> wrote:
>>> 6th iteration of the reftable storage format.
>>>
>>> You can read a rendered version of this here:
>>> https://googlers.googlesource.com/sop/jgit/+/reftable/Documentation/technical/reftable.md
>>>
>>> The index may be organized into a multi-level index, where ...
>>> which may in turn point to either index blocks (3rd level) or ref blocks 
>>> (leaf level).
>>
>> So we allow 3 levels at most?
>
> No, its just an example. Large ref sets with small block size need 4
> levels. Or more.

A malicious (or buggy) writer can produce indexes pointing to
each other producing a circle. (Who would do that?)

A reader should  - instead of segfaulting due to unbounded
recursion or being stuck in an infinite loop - ignore the indexes
in this case and fallback to the slow non-indexed behavior,
i.e. while the file format allows for unbounded levels, a reader
should not.

Reply via email to