[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20120402063532.GA3464@swordfish>
Date: Mon, 2 Apr 2012 09:35:32 +0300
From: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
To: Catalin Marinas <catalin.marinas@....com>
Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: [PATCH] kmemleak: do not leak object after tree insertion error
[PATCH] kmemleak: do not leak object after tree insertion error
In case when tree insertion fails due to already existing object
error, pointer to allocated object gets lost due to lookup_object()
overwrite. Free allocated object before lookup happens.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
---
mm/kmemleak.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 45eb621..d6eec2d 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -260,6 +260,7 @@ static struct early_log
static int crt_early_log __initdata;
static void kmemleak_disable(void);
+static void __delete_object(struct kmemleak_object *);
/*
* Print a warning and dump the stack trace.
@@ -576,6 +577,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
* random memory blocks.
*/
if (node != &object->tree_node) {
+ __delete_object(object);
kmemleak_stop("Cannot insert 0x%lx into the object search tree "
"(already existing)\n", ptr);
object = lookup_object(ptr, 1);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists