alitrack / undark

Undark - a SQLite recovery tool for deleted data or corrupt database
Other
73 stars 26 forks source link

Segfault on big db + double free if rowsize-max is not specified #4

Closed DavidVentura closed 7 years ago

DavidVentura commented 7 years ago

Hi! I've been testing undark to recover data from an iPhone's sms database; I get a lot of data but after a while Undark segfaults; I've managed to get undark to go through most of the database by limiting rowsize min and max and disabling blobs.

Using --cellcount-min=50 --cellcount-max=60 --no-blobs --rowsize-min=300 I get 14907 registers back (some are garbled..)

Using ./undark --cellcount-min=50 --cellcount-max=60 --no-blobs

I get a double-free error after 1587 rows.

With the first example, the error reliably happens after 4685 pages, I've dumped the debug data for pages 4683, 4684 and 4685; the page for 4685 is notably different to the other pages.

If you want I can attach the debug output for these 3 pages

witwall commented 7 years ago

please open issue here, https://github.com/inflex/undark/issues