[PATCH] misc: mic: use kstrdup() in cosm_sysfs

From: Geliang Tang
Date: Sat Oct 10 2015 - 07:53:09 EST


Use kstrdup instead of kmalloc and strncpy.

Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
---
drivers/misc/mic/cosm/cosm_sysfs.c | 23 ++++-------------------
1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/drivers/misc/mic/cosm/cosm_sysfs.c b/drivers/misc/mic/cosm/cosm_sysfs.c
index 29d6863..c3db466 100644
--- a/drivers/misc/mic/cosm/cosm_sysfs.c
+++ b/drivers/misc/mic/cosm/cosm_sysfs.c
@@ -211,18 +211,14 @@ cmdline_store(struct device *dev, struct device_attribute *attr,
mutex_lock(&cdev->cosm_mutex);
kfree(cdev->cmdline);

- cdev->cmdline = kmalloc(count + 1, GFP_KERNEL);
+ cdev->cmdline = kstrdup(buf, GFP_KERNEL);
if (!cdev->cmdline) {
count = -ENOMEM;
goto unlock;
}

- strncpy(cdev->cmdline, buf, count);
-
if (cdev->cmdline[count - 1] == '\n')
cdev->cmdline[count - 1] = '\0';
- else
- cdev->cmdline[count] = '\0';
unlock:
mutex_unlock(&cdev->cosm_mutex);
return count;
@@ -257,17 +253,14 @@ firmware_store(struct device *dev, struct device_attribute *attr,
mutex_lock(&cdev->cosm_mutex);
kfree(cdev->firmware);

- cdev->firmware = kmalloc(count + 1, GFP_KERNEL);
+ cdev->firmware = kstrdup(buf, GFP_KERNEL);
if (!cdev->firmware) {
count = -ENOMEM;
goto unlock;
}
- strncpy(cdev->firmware, buf, count);

if (cdev->firmware[count - 1] == '\n')
cdev->firmware[count - 1] = '\0';
- else
- cdev->firmware[count] = '\0';
unlock:
mutex_unlock(&cdev->cosm_mutex);
return count;
@@ -302,18 +295,14 @@ ramdisk_store(struct device *dev, struct device_attribute *attr,
mutex_lock(&cdev->cosm_mutex);
kfree(cdev->ramdisk);

- cdev->ramdisk = kmalloc(count + 1, GFP_KERNEL);
+ cdev->ramdisk = kstrdup(buf, GFP_KERNEL);
if (!cdev->ramdisk) {
count = -ENOMEM;
goto unlock;
}

- strncpy(cdev->ramdisk, buf, count);
-
if (cdev->ramdisk[count - 1] == '\n')
cdev->ramdisk[count - 1] = '\0';
- else
- cdev->ramdisk[count] = '\0';
unlock:
mutex_unlock(&cdev->cosm_mutex);
return count;
@@ -351,18 +340,14 @@ bootmode_store(struct device *dev, struct device_attribute *attr,
mutex_lock(&cdev->cosm_mutex);
kfree(cdev->bootmode);

- cdev->bootmode = kmalloc(count + 1, GFP_KERNEL);
+ cdev->bootmode = kstrdup(buf, GFP_KERNEL);
if (!cdev->bootmode) {
count = -ENOMEM;
goto unlock;
}

- strncpy(cdev->bootmode, buf, count);
-
if (cdev->bootmode[count - 1] == '\n')
cdev->bootmode[count - 1] = '\0';
- else
- cdev->bootmode[count] = '\0';
unlock:
mutex_unlock(&cdev->cosm_mutex);
return count;
--
1.9.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/