From 602de9829cc730e3fbc401297419e9acdfb0fe83 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Tue, 5 Oct 2010 23:21:51 +0000 Subject: DJGPP: Avoid leaking memory on lowmem mapping error Add a clarifying comment about why low memory is never unmapped. Corresponding to flashrom svn r1195. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Rudolf Marek --- physmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/physmap.c b/physmap.c index 011c8d1..d5948ae 100644 --- a/physmap.c +++ b/physmap.c @@ -56,6 +56,8 @@ static void *map_first_meg(unsigned long phys_addr, size_t len) } if (__djgpp_map_physical_memory(realmem_map, (1024 * 1024), 0)) { + free(realmem_map); + realmem_map = NULL; return ERROR_PTR; } @@ -95,7 +97,9 @@ void physunmap(void *virt_addr, size_t len) { __dpmi_meminfo mi; - /* we ignore unmaps for our first 1MB */ + /* There is no known way to unmap the first 1 MB. The DPMI server will + * do this for us on exit. + */ if ((virt_addr >= realmem_map) && ((virt_addr + len) <= (realmem_map + (1024 * 1024)))) { return; } -- cgit v1.1