dmaengine: idxd: remove trailing white space on input str for wq name
authorDave Jiang <dave.jiang@intel.com>
Mon, 21 Mar 2022 20:40:51 +0000 (13:40 -0700)
committerVinod Koul <vkoul@kernel.org>
Mon, 11 Apr 2022 13:51:34 +0000 (19:21 +0530)
Add string processing with strim() in order to remove trailing white spaces
that may be input by user for the wq->name.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/164789525123.2799661.13795829125221129132.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/sysfs.c

index 7e19ab9..7e628e3 100644 (file)
@@ -832,6 +832,7 @@ static ssize_t wq_name_store(struct device *dev,
                             size_t count)
 {
        struct idxd_wq *wq = confdev_to_wq(dev);
+       char *input, *pos;
 
        if (wq->state != IDXD_WQ_DISABLED)
                return -EPERM;
@@ -846,9 +847,14 @@ static ssize_t wq_name_store(struct device *dev,
        if (wq->type == IDXD_WQT_KERNEL && device_pasid_enabled(wq->idxd))
                return -EOPNOTSUPP;
 
+       input = kstrndup(buf, count, GFP_KERNEL);
+       if (!input)
+               return -ENOMEM;
+
+       pos = strim(input);
        memset(wq->name, 0, WQ_NAME_SIZE + 1);
-       strncpy(wq->name, buf, WQ_NAME_SIZE);
-       strreplace(wq->name, '\n', '\0');
+       sprintf(wq->name, "%s", pos);
+       kfree(input);
        return count;
 }