From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754105Ab2DRPpH (ORCPT ); Wed, 18 Apr 2012 11:45:07 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:59573 "EHLO mail-wi0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750856Ab2DRPpF (ORCPT ); Wed, 18 Apr 2012 11:45:05 -0400 Date: Wed, 18 Apr 2012 18:44:48 +0300 From: Sergey Senozhatsky To: Catalin Marinas Cc: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH] kmemleak: do not leak object after tree insertion error (v3) Message-ID: <20120418154448.GA3617@swordfish.minsk.epam.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [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 because of overwrite with lookup_object() return. Free allocated object before object lookup. Signed-off-by: Sergey Senozhatsky --- mm/kmemleak.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 45eb621..5f05993 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -578,6 +578,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size, if (node != &object->tree_node) { kmemleak_stop("Cannot insert 0x%lx into the object search tree " "(already existing)\n", ptr); + kmem_cache_free(object_cache, object); object = lookup_object(ptr, 1); spin_lock(&object->lock); dump_object_info(object); From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx131.postini.com [74.125.245.131]) by kanga.kvack.org (Postfix) with SMTP id 8DD6C6B00EA for ; Wed, 18 Apr 2012 11:45:05 -0400 (EDT) Received: by wgbdt14 with SMTP id dt14so6436715wgb.26 for ; Wed, 18 Apr 2012 08:45:03 -0700 (PDT) Date: Wed, 18 Apr 2012 18:44:48 +0300 From: Sergey Senozhatsky Subject: [PATCH] kmemleak: do not leak object after tree insertion error (v3) Message-ID: <20120418154448.GA3617@swordfish.minsk.epam.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: owner-linux-mm@kvack.org List-ID: To: Catalin Marinas Cc: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" [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 because of overwrite with lookup_object() return. Free allocated object before object lookup. Signed-off-by: Sergey Senozhatsky --- mm/kmemleak.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 45eb621..5f05993 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -578,6 +578,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size, if (node != &object->tree_node) { kmemleak_stop("Cannot insert 0x%lx into the object search tree " "(already existing)\n", ptr); + kmem_cache_free(object_cache, object); object = lookup_object(ptr, 1); spin_lock(&object->lock); dump_object_info(object); -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: email@kvack.org