From 32e432da4817399ea856ed769a208aca67c17d11 Mon Sep 17 00:00:00 2001 From: Christophe Grenier Date: Sat, 9 Aug 2014 09:41:50 +0200 Subject: [PATCH] PhotoRec: stricter check for .dad --- src/file_dad.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/file_dad.c b/src/file_dad.c index 17712dae..ba3f5734 100644 --- a/src/file_dad.c +++ b/src/file_dad.c @@ -73,14 +73,18 @@ static data_check_t data_check_dad(const unsigned char *buffer, const unsigned i static int header_check_dad(const unsigned char *buffer, const unsigned int buffer_size, const unsigned int safe_header_only, const file_recovery_t *file_recovery, file_recovery_t *file_recovery_new) { + const struct dad_header *dad=(const struct dad_header *)buffer; if(file_recovery!=NULL && file_recovery->file_stat!=NULL && file_recovery->file_stat->file_hint==&file_hint_dad && (file_recovery->calculated_file_size==file_recovery->file_size || file_recovery->blocksize < 16)) return 0; + if(le32(dad->size)<16) + return 0; reset_file_recovery(file_recovery_new); file_recovery_new->extension=file_hint_dad.extension; + file_recovery_new->min_filesize=le32(dad->size); if(file_recovery_new->blocksize >= 16) { file_recovery_new->data_check=&data_check_dad;