summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ext4magic.c8
-rw-r--r--src/inode.c6
2 files changed, 8 insertions, 6 deletions
diff --git a/src/ext4magic.c b/src/ext4magic.c
index 5ac418d..061490a 100644
--- a/src/ext4magic.c
+++ b/src/ext4magic.c
@@ -62,6 +62,7 @@ ext2_filsys current_fs = NULL;
ext2_ino_t root, cwd;
ext2fs_inode_bitmap imap = NULL ;
ext2fs_block_bitmap bmap = NULL ;
+time_t now_time ;
//print Versions an CPU-endian-type
void print_version ( void )
@@ -258,7 +259,6 @@ int main(int argc, char *argv[]){
char* progname = argv[0];
int retval, exitval;
char defaultdir[] = "RECOVERDIR" ;
-time_t help_time;
//FIXME : usage is not correct
const char *usage = "\next4magic -M [-j <journal_file>] [-d <target_dir>] <filesystem> \n\
ext4magic -m [-j <journal_file>] [-d <target_dir>] <filesystem> \n\
@@ -299,8 +299,8 @@ if ( argc < 3 )
// set default Time from "now -1 day" to "now"
-time( &help_time );
-t_before = (__u32) help_time;
+time( &now_time );
+t_before = (__u32) now_time;
t_after = t_before - 86400 ;
@@ -636,7 +636,7 @@ if (mode && magicscan){
printf("Warning: Activate magic scan function, may be some command line options ignored\n");
mode &= MASK_MAGIC_SCAN;
inode_nr = EXT2_ROOT_INO;
- t_before = (__u32) help_time;
+ t_before = (__u32) now_time;
if ((!(mode & INPUT_TIME)) || (t_after == t_before - 86400)){
t_after = get_last_delete_time(current_fs);
mode |= INPUT_TIME;
diff --git a/src/inode.c b/src/inode.c
index 283ec42..d5ee24e 100644
--- a/src/inode.c
+++ b/src/inode.c
@@ -31,7 +31,8 @@
#include "inode.h"
#include "ring_buf.h"
-extern ext2_filsys current_fs;
+extern ext2_filsys current_fs;
+extern time_t now_time ;
@@ -799,7 +800,8 @@ struct ring_buf* get_j_inode_list(struct ext2_super_block *es, ext2_ino_t inode_
if ( ext2fs_read_inode_full(current_fs, inode_nr, (struct ext2_inode*)inode_buf, pos.size))
goto errout;
inode_pointer = (struct ext2_inode*) inode_buf ;
- if(((! inode_pointer->i_dtime) && inode_pointer->i_ctime) || (inode_pointer->i_ctime > ctime)){
+ if((((! inode_pointer->i_dtime) && inode_pointer->i_ctime) || (inode_pointer->i_ctime > ctime)) &&
+ (inode_pointer->i_ctime < (__u32) now_time)){
item = r_item_add(buf);
if ( ! item){
fprintf(stderr,"Error: can not allocate memory for inode\n");