Skip an all-zero pages in the index file.
They can happen normally if the ma_checkpoint_background
thread flushes some later page first (e.g. page 50 before page 48).
Also:
* don't do alloca() in a loop
* correct the check in ma_crypt_index_post_read_hook(),
the page can be completely full
* compilation failure in ma_open.c:1289:
comparison is always false due to limited range of data type