diff options
author | Christophe Grenier <grenier@cgsecurity.org> | 2015-04-11 14:23:16 +0200 |
---|---|---|
committer | Christophe Grenier <grenier@cgsecurity.org> | 2015-04-11 14:23:16 +0200 |
commit | 67054372873f2ed5414da7fff1cb5744148289d6 (patch) | |
tree | a8cd9501bcfc1e1efec8ca6603e7f11b0ad2ec0c /src/file_mig.c | |
parent | efc94ee87ac3b4e3ecf4fb3ab4adac2ef0a6278f (diff) |
add gcc_struct attribute to all __packed__ structure
do not use fseeko() with mingw32 gcc compiler
Diffstat (limited to 'src/file_mig.c')
-rw-r--r-- | src/file_mig.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/file_mig.c b/src/file_mig.c index 5274407..eb9c29d 100644 --- a/src/file_mig.c +++ b/src/file_mig.c @@ -34,6 +34,12 @@ #include "log.h" #endif +#if defined(HAVE_FSEEKO) && !defined(__MINGW32__) +#define my_fseek fseeko +#else +#define my_fseek fseek +#endif + static void register_header_check_mig(file_stat_t *file_stat); const file_hint_t file_hint_mig= { @@ -55,7 +61,7 @@ struct MIG_HDR uint32_t unk2; uint32_t unk3; unsigned char fn[0]; -} __attribute__ ((__packed__)); +} __attribute__ ((gcc_struct, __packed__)); static void file_check_mig(file_recovery_t *file_recovery) { @@ -65,11 +71,7 @@ static void file_check_mig(file_recovery_t *file_recovery) while(1) { size_t res; -#ifdef HAVE_FSEEKO - if(fseeko(file_recovery->handle, offset, SEEK_SET) < 0) -#else - if(fseek(file_recovery->handle, offset, SEEK_SET) < 0) -#endif + if(my_fseek(file_recovery->handle, offset, SEEK_SET) < 0) { #ifdef DEBUG_MIG log_info("0x%lx fseek failed\n", (long unsigned)offset); |