summaryrefslogtreecommitdiffstats
path: root/src/file_amd.c
diff options
context:
space:
mode:
authorChristophe Grenier <grenier@cgsecurity.org>2015-05-11 09:25:39 +0200
committerChristophe Grenier <grenier@cgsecurity.org>2015-05-11 09:25:39 +0200
commite1ca4010307fb53d83c5036f6c8269eb9066c928 (patch)
tree79a9547954c70be7ddc88324990d60a163ffb16d /src/file_amd.c
parentf63304053aa32515e4853c2472fb785bcda0307c (diff)
remove always-true memcmp
Diffstat (limited to 'src/file_amd.c')
-rw-r--r--src/file_amd.c73
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=&register_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);
+}