mulx - 2009-06-01

Hi,
I have the same bug, and I try to find exactly here is the bug, so I find it....

In procedure getInode (line 423), you have:
sz_inode = le16_to_cpu(fs->sb.s_inode_size);
But when the program crash sz_inode is set (on my computer) to 256 (100h), and when the program work sz_inode = 128 (80h).
The size of the structure defined by linux header (ext2.h).

With this size error, few line after the memcpy erase data after.
The data erased is the t_prog_const prog_c used by caller procedure chkInode, and when the cdavl use prog_c (in chkInode) it crash with a segfault because prog_c is set to NULL.

To fix partially this bug I had an array of unsigned int in cdavl.h structure, exactly in t_inode_info, just after struct ext2_inode; I add unsigned int workaroundbug[32].
By doing this cdavl report lot of line with error block-number double check ; but it seem to work ...

I made a modified release here http://aplu.fr/davl-ng/