aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2013-07-19 03:53:24 -0400
committerLee Jones <lee.jones@linaro.org>2013-09-02 05:22:44 -0400
commitd551c4c43ccac3ef272e10ac23a64eaac16c23fd (patch)
tree672cee75a978ac9ead4860b278d8d0cb2ccaae76 /drivers/mfd
parentf840e23bcf16068eeffe8991ac38b58b82160e43 (diff)
mfd: ab8500-debugfs: Apply a check for -ENOMEM after allocating memory for event name
The AB8500 debugfs driver allocates memory to contain the name of a new sysfs entry, but fails to apply the proper post-allocation checks. If the device were to run out of memory, the allocation would return NULL. Without the correct checks the driver will continue to populate address NULL with the specified device name which would obviously cause a pointer dereference Oops. Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/ab8500-debugfs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
index fe8189c4385a..e33e385af0a2 100644
--- a/drivers/mfd/ab8500-debugfs.c
+++ b/drivers/mfd/ab8500-debugfs.c
@@ -2804,6 +2804,9 @@ static ssize_t ab8500_subscribe_write(struct file *file,
2804 return -ENOMEM; 2804 return -ENOMEM;
2805 2805
2806 event_name[irq_index] = kmalloc(count, GFP_KERNEL); 2806 event_name[irq_index] = kmalloc(count, GFP_KERNEL);
2807 if (!event_name[irq_index])
2808 return -ENOMEM;
2809
2807 sprintf(event_name[irq_index], "%lu", user_val); 2810 sprintf(event_name[irq_index], "%lu", user_val);
2808 dev_attr[irq_index]->show = show_irq; 2811 dev_attr[irq_index]->show = show_irq;
2809 dev_attr[irq_index]->store = NULL; 2812 dev_attr[irq_index]->store = NULL;