Hello,

this bug report is still has not enough information. To narrow down the
problem, we need a stacktrace. To get it, one need to run the program under
gdb with extundelete debug package installed.

Such report would be much better if the program be recompiled from sources
without optimization:

DEB_BUILD_OPTIONS='noopt debug' debuild -uc -us

and then run under gdb:

sudo gdb -ex run --args ./extundelete --restore-directory /user/bin/storage
/dev/sdb1


Nevertheless, I've investigated the bug a bit and here is what I found.

1. First, I've viewed the source code for the cause of the error message:

> *** Error in `extundelete': double free or corruption (!prev):
> 0x0000000001a95000 ***


and did not found any double deallocations, only an insignificant memory
leak at cli.cc:346.

So the most probable cause of the message is a *heap corruption*, due to
some out-of-bounds access (buffer overrun/underrun).

2. Another suspect is the src/block.c source file:

>  * This file was modified from e2fsprogs lib/ext2fs/block.c and extent.c
>  * These modifications allow undeletion with libext2fs 1.39 to 1.42.6,
>  * and possibly newer versions.

Unstable currently has libext2fs-dev 1.44.5, so may be extundelete is
linked against incompatible version of libext2fs.

3. Since extundelete is a pretty old program (last commit is on
2013-01-03), may be it just has bad support for modern ext4.

Regards,
Aleksey.

Reply via email to