https://bugs.openldap.org/show_bug.cgi?id=9291

--- Comment #16 from Markus <[email protected]> ---
(In reply to Howard Chu from comment #15)

> > Use mm_last_pg from the meta page.
> 
> Actually, that's already been checked for you, you only need to compare to
> mt_next_pgno. And mdb_page_get already checks it. Though perhaps the check
> could be done earlier in that function.

Right, checking this earlier seems a good idea as the check might be skipped
otherwise by one of the gotos?

1) What kept me away from using mm_last_pg was its comment "Actually the file
may be shorter if the freeDB lists the final pages." So I wasn't sure if and
when there are cases when mm_last_pg points beyond the file(?).

2) mt_next_pgno itself should be checked against the file size on opening. I
think, I'll update the submitted patch.

3) A preemptive check to peek into a few pages might still make sense on
opening, e.g. at that point one could easily switch to the previous snapshot.
Also there might be additional checks possible, e.g. pages must not point to a
parent, page numbers in branch pages must be 2 or greater, ...

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to