Ver Fonte

[PATCH] Fix a memory leak in the i386 setup code

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Catalin Marinas há 19 anos atrás
pai
commit
a7546075e7
1 ficheiros alterados com 4 adições e 1 exclusões
  1. 4 1
      arch/i386/kernel/setup.c

+ 4 - 1
arch/i386/kernel/setup.c

@@ -1327,7 +1327,10 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat
 		res->start = e820.map[i].addr;
 		res->start = e820.map[i].addr;
 		res->end = res->start + e820.map[i].size - 1;
 		res->end = res->start + e820.map[i].size - 1;
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
 		res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
-		request_resource(&iomem_resource, res);
+		if (request_resource(&iomem_resource, res)) {
+			kfree(res);
+			continue;
+		}
 		if (e820.map[i].type == E820_RAM) {
 		if (e820.map[i].type == E820_RAM) {
 			/*
 			/*
 			 *  We don't know which RAM region contains kernel data,
 			 *  We don't know which RAM region contains kernel data,