From: Marcin Slusarz Date: Sat, 28 Mar 2009 17:44:24 +0000 (+0100) Subject: [MTD] fix use after free in register_mtd_blktrans X-Git-Tag: v2.6.30-rc1~143^2~17 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=2cf3a11494b15949835ff92a7af15f979ac37bbd;p=linux.git [MTD] fix use after free in register_mtd_blktrans Reported-by: Dan Carpenter Cc: Christoph Hellwig Signed-off-by: Marcin Slusarz Signed-off-by: David Woodhouse --- diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index 1409f01406f6..4109e0bb94f5 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -382,11 +382,12 @@ int register_mtd_blktrans(struct mtd_blktrans_ops *tr) tr->blkcore_priv->thread = kthread_run(mtd_blktrans_thread, tr, "%sd", tr->name); if (IS_ERR(tr->blkcore_priv->thread)) { + int ret = PTR_ERR(tr->blkcore_priv->thread); blk_cleanup_queue(tr->blkcore_priv->rq); unregister_blkdev(tr->major, tr->name); kfree(tr->blkcore_priv); mutex_unlock(&mtd_table_mutex); - return PTR_ERR(tr->blkcore_priv->thread); + return ret; } INIT_LIST_HEAD(&tr->devs);