diff -up extundelete-0.1.8/src/block.c.old extundelete-0.1.8/src/block.c
--- extundelete-0.1.8/src/block.c.old 2010-04-13 11:35:49.290504000 +0000
+++ extundelete-0.1.8/src/block.c 2010-04-13 12:58:10.048504053 +0000
@@ -94,7 +94,7 @@ void local_ext2fs_extent_free(ext2_exten
ext2fs_free_mem(&handle);
}
-errcode_t local_ext2fs_extent_open(ext2_filsys fs, ext2_inode inode,
+errcode_t local_ext2fs_extent_open(ext2_filsys fs, ext2_inode *inode,
ext2_extent_handle_t *ret_handle) {
struct ext2_extent_handle *handle;
@@ -108,7 +108,7 @@ errcode_t local_ext2fs_extent_open(ext2_
handle->ino = 0;
handle->fs = fs;
- handle->inode = &inode;
+ handle->inode = inode;
eh = (struct ext3_extent_header *) &handle->inode->i_block[0];
for (i=0; i < EXT2_N_BLOCKS; i++)
@@ -487,7 +487,7 @@ errcode_t local_block_iterate3(ext2_fils
int uninit;
unsigned int j;
- ctx.errcode = local_ext2fs_extent_open(fs, inode, &handle);
+ ctx.errcode = local_ext2fs_extent_open(fs, &inode, &handle);
if (ctx.errcode)
goto abort_exit;
diff -up extundelete-0.1.8/src/extundelete.cc.old extundelete-0.1.8/src/extundelete.cc
--- extundelete-0.1.8/src/extundelete.cc.old 2010-04-13 12:09:56.946504504 +0000
+++ extundelete-0.1.8/src/extundelete.cc 2010-04-13 13:12:47.352504491 +0000
@@ -2377,9 +2377,14 @@ void restore_inode(ext2_filsys fs, ext2_
file.close();
if(!flag) {
- truncate( (outputdir + fname2).c_str(), EXT2_I_SIZE(inode));
- std::cout << "Restored inode " << ino << " to file ";
- std::cout << (outputdir + fname2) << std::endl;
+ if(truncate( (outputdir + fname2).c_str(), EXT2_I_SIZE(inode)) == 0){
+ std::cout << "Restored inode " << ino << " to file ";
+ std::cout << (outputdir + fname2) << std::endl;
+ }
+ else
+ {
+ std::cout << "Error truncating " << std::endl;
+ }
}
else {
std::cout << "Failed to restore inode " << ino << " to file ";