dbghelp: Don't use elf_fetch_file_info and macho_fetch_file_info in module_find_cb.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-03-24 01:54:19 +01:00 committed by Alexandre Julliard
parent fec0157585
commit adecdb1d01

View file

@ -24,6 +24,7 @@
#include <string.h>
#include "dbghelp_private.h"
#include "image_private.h"
#include "winnls.h"
#include "winternl.h"
#include "wine/debug.h"
@ -523,34 +524,28 @@ static BOOL CALLBACK module_find_cb(PCWSTR buffer, PVOID user)
if (timestamp == mf->dw1 && size == mf->dw2) matched++;
}
break;
case DMT_ELF:
if (elf_fetch_file_info(buffer, 0, &size, &checksum))
{
matched++;
if (checksum == mf->dw1) matched++;
else
WARN("Found %s, but wrong checksums: %08x %08x\n",
debugstr_w(buffer), checksum, mf->dw1);
}
else
{
WARN("Couldn't read %s\n", debugstr_w(buffer));
return FALSE;
}
break;
case DMT_MACHO:
if (macho_fetch_file_info(NULL, buffer, 0, 0, &size, &checksum))
case DMT_ELF:
{
matched++;
if (checksum == mf->dw1) matched++;
HANDLE file;
file = CreateFileW(buffer, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (file == INVALID_HANDLE_VALUE) break;
checksum = calc_crc32(file);
if (checksum == mf->dw1) matched += 2;
else
WARN("Found %s, but wrong checksums: %08x %08x\n",
debugstr_w(buffer), checksum, mf->dw1);
}
else
{
WARN("Couldn't read %s\n", debugstr_w(buffer));
return FALSE;
{
struct image_file_map fmap;
WARN("Found %s, but wrong checksums: %08x %08x\n", debugstr_w(buffer), checksum, mf->dw1);
if (elf_map_handle(file, &fmap)) /* FIXME: validate macho files */
{
image_unmap_file(&fmap);
matched++;
}
}
CloseHandle(file);
}
break;
case DMT_PDB: