diff options
author | Christophe Grenier <grenier@cgsecurity.org> | 2015-05-11 09:25:39 +0200 |
---|---|---|
committer | Christophe Grenier <grenier@cgsecurity.org> | 2015-05-11 09:25:39 +0200 |
commit | e1ca4010307fb53d83c5036f6c8269eb9066c928 (patch) | |
tree | 79a9547954c70be7ddc88324990d60a163ffb16d /src/file_amd.c | |
parent | f63304053aa32515e4853c2472fb785bcda0307c (diff) |
remove always-true memcmp
Diffstat (limited to 'src/file_amd.c')
-rw-r--r-- | src/file_amd.c | 73 |
1 files changed, 32 insertions, 41 deletions
diff --git a/src/file_amd.c b/src/file_amd.c index 87b9e92..a069529 100644 --- a/src/file_amd.c +++ b/src/file_amd.c @@ -45,52 +45,43 @@ const file_hint_t file_hint_amd= { .register_header_check=®ister_header_check_amd }; -/* amd 1.36 - * atd 1.19 */ -static const unsigned char amd_header[16]={ - 'L', 'i', 'c', 'o', 'm', '-', 'A', 'P', - 'S', ' ', 'F', 'i', 'l', 'e', ' ', 'V' }; - -/* amt 1.19 - * att 1.08 */ -static const unsigned char amt_header[20]={ - 'L', 'i', 'c', 'o', 'm', '-', 'A', 'P', - 'S', ' ', 'T', 'o', 'o', 'l', ' ', 'F', - 'i', 'l', 'e', ' '}; - -static void register_header_check_amd(file_stat_t *file_stat) -{ - register_header_check(0, amd_header,sizeof(amd_header), &header_check_amd, file_stat); - register_header_check(0, amt_header,sizeof(amt_header), &header_check_amt, file_stat); -} - static int header_check_amd(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) { - if(memcmp(buffer, amd_header, sizeof(amd_header))==0) - { - reset_file_recovery(file_recovery_new); - /* FIXME: I don't think it's a valid way to distinguish between files */ - if(buffer[16]=='1' && buffer[17]=='.' && buffer[18]=='1' && buffer[19]=='9') - file_recovery_new->extension="atd"; - else - file_recovery_new->extension=file_hint_amd.extension; - return 1; - } - return 0; + reset_file_recovery(file_recovery_new); + /* FIXME: I don't think it's a valid way to distinguish between files */ + if(buffer[16]=='1' && buffer[17]=='.' && buffer[18]=='1' && buffer[19]=='9') + file_recovery_new->extension="atd"; + else + file_recovery_new->extension=file_hint_amd.extension; + return 1; } static int header_check_amt(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) { - if(memcmp(buffer, amt_header, sizeof(amt_header))==0) - { - reset_file_recovery(file_recovery_new); - /* FIXME: I don't think it's a valid way to distinguish between files */ - if(buffer[21]=='1' && buffer[22]=='.' && buffer[23]=='0' && buffer[24]=='8') - file_recovery_new->extension="att"; - else - file_recovery_new->extension="amt"; - return 1; - } - return 0; + reset_file_recovery(file_recovery_new); + /* FIXME: I don't think it's a valid way to distinguish between files */ + if(buffer[21]=='1' && buffer[22]=='.' && buffer[23]=='0' && buffer[24]=='8') + file_recovery_new->extension="att"; + else + file_recovery_new->extension="amt"; + return 1; } +static void register_header_check_amd(file_stat_t *file_stat) +{ + /* amd 1.36 + * atd 1.19 */ + static const unsigned char amd_header[16]={ + 'L', 'i', 'c', 'o', 'm', '-', 'A', 'P', + 'S', ' ', 'F', 'i', 'l', 'e', ' ', 'V' }; + + /* amt 1.19 + * att 1.08 */ + static const unsigned char amt_header[20]={ + 'L', 'i', 'c', 'o', 'm', '-', 'A', 'P', + 'S', ' ', 'T', 'o', 'o', 'l', ' ', 'F', + 'i', 'l', 'e', ' '}; + + register_header_check(0, amd_header,sizeof(amd_header), &header_check_amd, file_stat); + register_header_check(0, amt_header,sizeof(amt_header), &header_check_amt, file_stat); +} |