summaryrefslogtreecommitdiffstats
path: root/src/file_rar.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_rar.c
parentf63304053aa32515e4853c2472fb785bcda0307c (diff)
remove always-true memcmp
Diffstat (limited to 'src/file_rar.c')
-rw-r--r--src/file_rar.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/file_rar.c b/src/file_rar.c
index 06f6d38..b8acbb6 100644
--- a/src/file_rar.c
+++ b/src/file_rar.c
@@ -45,30 +45,26 @@ const file_hint_t file_hint_rar= {
.register_header_check=&register_header_check_rar
};
-static const unsigned char rar_header[7]={0x52, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00 };
+#define MHD_PASSWORD 0x0080U
-static void register_header_check_rar(file_stat_t *file_stat)
+static void file_check_rar(file_recovery_t *file_recovery)
{
- register_header_check(0, rar_header,sizeof(rar_header), &header_check_rar, file_stat);
+ static const unsigned char rar_footer[7]={0xc4, 0x3d, 0x7b, 0x00, 0x40, 0x07, 0x00 };
+ file_search_footer(file_recovery, rar_footer, sizeof(rar_footer), 0);
}
-#define MHD_PASSWORD 0x0080U
static int header_check_rar(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,rar_header,sizeof(rar_header))==0)
- {
- reset_file_recovery(file_recovery_new);
- file_recovery_new->min_filesize=70;
- if((buffer[0xa] & MHD_PASSWORD)==0)
- file_recovery_new->file_check=file_check_rar;
- file_recovery_new->extension=file_hint_rar.extension;
- return 1;
- }
- return 0;
+ reset_file_recovery(file_recovery_new);
+ file_recovery_new->min_filesize=70;
+ if((buffer[0xa] & MHD_PASSWORD)==0)
+ file_recovery_new->file_check=file_check_rar;
+ file_recovery_new->extension=file_hint_rar.extension;
+ return 1;
}
-static void file_check_rar(file_recovery_t *file_recovery)
+static void register_header_check_rar(file_stat_t *file_stat)
{
- static const unsigned char rar_footer[7]={0xc4, 0x3d, 0x7b, 0x00, 0x40, 0x07, 0x00 };
- file_search_footer(file_recovery, rar_footer, sizeof(rar_footer), 0);
+ static const unsigned char rar_header[7]={0x52, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00 };
+ register_header_check(0, rar_header,sizeof(rar_header), &header_check_rar, file_stat);
}