[PATCH 8/8] [DbgHelp]: properly bail out if get an error while reading ELF header
Eric Pouech
eric.pouech at orange.fr
Sat Mar 20 03:48:13 CDT 2010
A+
---
dlls/dbghelp/elf_module.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index 573a040..e0fab9c 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -272,7 +272,12 @@ static BOOL elf_map_file(const WCHAR* filenameW, struct image_file_map* fmap)
lseek(fmap->u.elf.fd, fmap->u.elf.elfhdr.e_shoff, SEEK_SET);
for (i = 0; i < fmap->u.elf.elfhdr.e_shnum; i++)
{
- read(fmap->u.elf.fd, &fmap->u.elf.sect[i].shdr, sizeof(fmap->u.elf.sect[i].shdr));
+ if (read(fmap->u.elf.fd, &fmap->u.elf.sect[i].shdr, sizeof(fmap->u.elf.sect[i].shdr)) != sizeof(fmap->u.elf.sect[i].shdr))
+ {
+ HeapFree(GetProcessHeap, 0, fmap->u.elf.sect);
+ fmap->u.elf.sect = NULL;
+ goto done;
+ }
fmap->u.elf.sect[i].mapped = IMAGE_NO_MAP;
}
More information about the wine-patches
mailing list