Currently, the nr_pages attribute store does not check if kstrndup()
succeeded. Fix this.

Reported-by: Alan Cox <alan....@intel.com>
Signed-off-by: Alexander Shishkin <alexander.shish...@linux.intel.com>
Reviewed-by: Laurent Fert <laurent.f...@intel.com>
---
 drivers/hwtracing/intel_th/msu.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index d9d6022c5a..747ccf84bd 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -1393,6 +1393,11 @@ nr_pages_store(struct device *dev, struct 
device_attribute *attr,
        do {
                end = memchr(p, ',', len);
                s = kstrndup(p, end ? end - p : len, GFP_KERNEL);
+               if (!s) {
+                       ret = -ENOMEM;
+                       goto free_win;
+               }
+
                ret = kstrtoul(s, 10, &val);
                kfree(s);
 
-- 
2.8.0.rc3

Reply via email to