From a7b8e2e80fdd42a4f24f4543608eff02deb99b04 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Mon, 30 Sep 2024 23:46:04 +0200 Subject: [PATCH] move crc32 function --- inc/crc32.h | 1 + src/crc32.c | 25 +++++++++++++++++++++++++ src/debug.c | 3 ++- src/utils.c | 26 -------------------------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/inc/crc32.h b/inc/crc32.h index d842810..f2ddf4b 100644 --- a/inc/crc32.h +++ b/inc/crc32.h @@ -6,5 +6,6 @@ unsigned long Crc32_ComputeBuf(unsigned long inCrc32, const void* buf, size_t bufLen); +unsigned long Crc32_FromFile(char* filename); #endif diff --git a/src/crc32.c b/src/crc32.c index 826842f..0befe8e 100644 --- a/src/crc32.c +++ b/src/crc32.c @@ -77,6 +77,31 @@ unsigned long Crc32_ComputeBuf( unsigned long inCrc32, const void *buf, return( crc32 ^ 0xFFFFFFFF ); } +unsigned long Crc32_FromFile(char* filename) +{ + if (!filename) + return 0; + + unsigned long crc32 = 0; + + FILE* fp = fopen(filename, "rb"); + if (fp) + { + char buf[1024]; + for (size_t s = 0; (s = fread(buf, 1, sizeof(buf), fp)) && !ferror(fp);) + { + crc32 = Crc32_ComputeBuf(crc32, buf, s); + } + + if (ferror(fp)) + crc32 = 0; + + fclose(fp); + } + + return crc32; +} + /*----------------------------------------------------------------------------*\ * END OF MODULE: crc32.c \*----------------------------------------------------------------------------*/ diff --git a/src/debug.c b/src/debug.c index 67ef352..ce8fe85 100644 --- a/src/debug.c +++ b/src/debug.c @@ -13,6 +13,7 @@ #include "git.h" #include "versionhelpers.h" #include "utils.h" +#include "crc32.h" #include "dllmain.h" #include "config.h" @@ -268,7 +269,7 @@ void dbg_init() TRACE("Wine sysname = %s, release = %s\n", sysname, release); } - TRACE("crc32 = %08X\n", util_get_crc32(exe_path)); + TRACE("crc32 = %08X\n", Crc32_FromFile(exe_path)); DWORD timestamp = util_get_timestamp(GetModuleHandleA(NULL)); if (timestamp) diff --git a/src/utils.c b/src/utils.c index f057a4e..5db8159 100644 --- a/src/utils.c +++ b/src/utils.c @@ -12,7 +12,6 @@ #include "utils.h" #include "config.h" #include "versionhelpers.h" -#include "crc32.h" /* @@ -107,31 +106,6 @@ DWORD util_get_timestamp(HMODULE mod) return nt_headers->FileHeader.TimeDateStamp; } -unsigned long util_get_crc32(char* filename) -{ - if (!filename) - return 0; - - unsigned long crc32 = 0; - - FILE* fp = fopen(filename, "rb"); - if (fp) - { - char buf[1024]; - for (size_t s = 0; (s = fread(buf, 1, sizeof(buf), fp)) && !ferror(fp);) - { - crc32 = Crc32_ComputeBuf(crc32, buf, s); - } - - if (ferror(fp)) - crc32 = 0; - - fclose(fp); - } - - return crc32; -} - FARPROC util_get_iat_proc(HMODULE mod, char* module_name, char* function_name) { if (!mod || mod == INVALID_HANDLE_VALUE)