diff options
author | Christophe Grenier <[email protected]> | 2014-07-26 22:36:01 +0200 |
---|---|---|
committer | Christophe Grenier <[email protected]> | 2014-07-26 22:36:01 +0200 |
commit | 09d486bc60f5128f6d6225e6c133545821e34f1f (patch) | |
tree | aff54892da04b19019c7189c3e85e0332d2ab042 | |
parent | 23c4c598f497cb074209f5030cc4f5543e848c1b (diff) |
PhotoRec: define minimal size for .qxd
-rw-r--r-- | src/file_qxd.c | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/src/file_qxd.c b/src/file_qxd.c index 0a01a790..1b1a4887 100644 --- a/src/file_qxd.c +++ b/src/file_qxd.c @@ -41,37 +41,32 @@ const file_hint_t file_hint_qxd= { .max_filesize=PHOTOREC_MAX_FILE_SIZE, .recover=1, .enable_by_default=1, - .register_header_check=®ister_header_check_qxd + .register_header_check=®ister_header_check_qxd }; -static const unsigned char qxd_header[4]={'X','P','R','3' }; -static const unsigned char qxp_header_be[6]={'I','I','X','P','R','3' }; -static const unsigned char qxp_header_le[6]={'M','M','X','P','R','3' }; - -static void register_header_check_qxd(file_stat_t *file_stat) +static int header_check_qxd(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) { - register_header_check(0, qxd_header,sizeof(qxd_header), &header_check_qxd, file_stat); - register_header_check(2, qxp_header_be,sizeof(qxp_header_be), &header_check_qxd, file_stat); - register_header_check(2, qxp_header_le,sizeof(qxp_header_le), &header_check_qxd, file_stat); + reset_file_recovery(file_recovery_new); + file_recovery_new->extension=file_hint_qxd.extension; + file_recovery_new->min_filesize=4; + return 1; } -static int header_check_qxd(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) +static int header_check_qxp(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,qxd_header,sizeof(qxd_header))==0) - { - reset_file_recovery(file_recovery_new); - file_recovery_new->extension=file_hint_qxd.extension; - return 1; - } /* Intel or Mac QuarkXpress Document */ - if(memcmp(buffer+2,qxp_header_be,sizeof(qxp_header_be))==0 || - memcmp(buffer+2,qxp_header_le,sizeof(qxp_header_le))==0) - { - reset_file_recovery(file_recovery_new); - file_recovery_new->extension="qxp"; - return 1; - } - return 0; + reset_file_recovery(file_recovery_new); + file_recovery_new->extension="qxp"; + file_recovery_new->min_filesize=6; + return 1; } - +static void register_header_check_qxd(file_stat_t *file_stat) +{ + static const unsigned char qxd_header[4]={'X','P','R','3' }; + static const unsigned char qxp_header_be[6]={'I','I','X','P','R','3' }; + static const unsigned char qxp_header_le[6]={'M','M','X','P','R','3' }; + register_header_check(0, qxd_header,sizeof(qxd_header), &header_check_qxd, file_stat); + register_header_check(2, qxp_header_be,sizeof(qxp_header_be), &header_check_qxp, file_stat); + register_header_check(2, qxp_header_le,sizeof(qxp_header_le), &header_check_qxp, file_stat); +} |