Patch "block: partition: initialize percpuref before sending out KOBJ_ADD" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
block: partition: initialize percpuref before sending out KOBJ_ADD
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
block-partition-initialize-percpuref-before-sending-out-kobj_add.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b30a337ca27c4f40439e4bfb290cba5f88d73bb7Mon Sep 17 00:00:00 2001
From: Ming Lei <[email protected]>
Date: Wed, 30 Mar 2016 08:46:31 +0800
Subject: block: partition: initialize percpuref before sending out KOBJ_ADD
From: Ming Lei <[email protected]>
commit b30a337ca27c4f40439e4bfb290cba5f88d73bb7 upstream.
The initialization of partition's percpu_ref should have been done before sending out KOBJ_ADD uevent, which may cause userspace to read partition table. So the uninitialized percpu_ref may be accessed in data path.
This patch fixes this issue reported by Naveen.
--- block/partition-generic.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
block/partition-generic.c +10 -3
@@ -349,15 +349,20 @@ struct hd_struct *add_partition(struct g goto out_del; } + err =hd_ref_init (p); +if (err) { +if (flags &ADDPART_FLAG_WHOLEDISK ) + goto out_remove_file; + goto out_del; + } +/* everything is up and running, commence */ rcu_assign_pointer (ptbl->part[partno], p);/* suppress uevent if the disk suppresses it */ if (!dev_get_uevent_suppress (ddev))kobject_uevent (&pdev->kobj,KOBJ_ADD ); - -if (!hd_ref_init (p)) -return p; +return p; out_free_info:free_part_info (p);
@@ -366,6 +371,8 @@ out_free_stats: out_free:kfree (p);return ERR_PTR (err); +out_remove_file: +device_remove_file (pdev, &dev_attr_whole_disk); out_del:kobject_put (p->holder_dir);device_del (pdev);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/block-partition-initialize-percpuref-before-sending-out-kobj_add.patch queue-4.4/block-loop-fix-filesystem-corruption-in-case-of-aio-dio.patch