- void *mv;
- uns lv;
- mv = xmalloc(li);
- lv = lizzard_decompress(mo, mv);
- printf("-> %d ", lv);
- fflush(stdout);
- if (lv != li || memcmp(mi, mv, lv))
+ int smaller_li;
+ if (li >= (int) CPU_PAGE_SIZE)
+ smaller_li = li - CPU_PAGE_SIZE;
+ else
+ smaller_li = 0;
+ struct lizard_buffer *buf = lizard_alloc();
+ byte *ptr = lizard_decompress_safe(mo, buf, crash ? smaller_li : li);
+ if (!ptr)
+ printf("err: %m");
+ else if (memcmp(mi, ptr, li))