Patch "rfkill: copy the name into the rfkill struct" has been added to the 3.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
rfkill: copy the name into the rfkill struct
to the 3.14-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:
rfkill-copy-the-name-into-the-rfkill-struct.patch
and it can be found in the queue-3.14 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
b7bb110008607a915298bf0f47d25886ecb94477Mon Sep 17 00:00:00 2001
From: Johannes Berg <[email protected]>
Date: Thu, 10 Dec 2015 10:37:51 +0100
Subject: rfkill: copy the name into the rfkill struct
From: Johannes Berg <[email protected]>
commit b7bb110008607a915298bf0f47d25886ecb94477 upstream.
Some users of rfkill, like NFC and cfg80211, use a dynamic name when allocating rfkill, in those cases dev_name(). Therefore, the pointer passed to rfkill_alloc() might not be valid forever, I specifically found the case that the rfkill name was quite obviously an invalid pointer (or at least garbage) when the wiphy had been renamed.
Fix this by making a copy of the rfkill name in rfkill_alloc().
--- net/rfkill/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
net/rfkill/core.c +3 -3
@@ -49,7 +49,6 @@struct rfkill {spinlock_t lock; -const char *name;enum rfkill_type type;unsigned long state;
@@ -73,6 +72,7 @@ struct rfkill {struct delayed_work poll_work;struct work_struct uevent_work;struct work_struct sync_work; +char name[]; };#define to_rfkill (d) container_of(d, struct rfkill, dev)
@@ -861,14 +861,14 @@ struct rfkill * __must_check rfkill_alloif (WARN_ON (type ==RFKILL_TYPE_ALL || type >=NUM_RFKILL_TYPES ))return NULL ; - rfkill =kzalloc (sizeof (*rfkill),GFP_KERNEL ); + rfkill =kzalloc (sizeof (*rfkill) +strlen (name) +1 ,GFP_KERNEL );if (!rfkill)return NULL ;spin_lock_init (&rfkill->lock);INIT_LIST_HEAD (&rfkill->node); rfkill->type = type; - rfkill->name = name; +strcpy (rfkill->name, name); rfkill->ops = ops; rfkill->data = ops_data;
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/rfkill-copy-the-name-into-the-rfkill-struct.patch queue-3.14/mac80211-mesh-fix-call_rcu-usage.patch