diff mbox series

mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit

Message ID 1618209872-20034-1-git-send-email-tiantao6@hisilicon.com
State Changes Requested
Delegated to: Miquel Raynal
Headers show
Series mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit | expand

Commit Message

tiantao \(H\) April 12, 2021, 6:44 a.m. UTC
Fix the following coccicheck warning:
drivers/mtd/mtdcore.c:296:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:306:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:237:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:275:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:286:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:264:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:227:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:162:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:143:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:218:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:208:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:199:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:190:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:152:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:181:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:134:8-16: WARNING: use scnprintf or sprintf
drivers/mtd/mtdcore.c:171:8-16: WARNING: use scnprintf or sprintf

Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
---
 drivers/mtd/mtdcore.c | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

Comments

Richard Weinberger April 12, 2021, 6:49 a.m. UTC | #1
Tian Tao,

----- Ursprüngliche Mail -----
> Von: "Tian Tao" <tiantao6@hisilicon.com>
> An: "Miquel Raynal" <miquel.raynal@bootlin.com>, "richard" <richard@nod.at>, "Vignesh Raghavendra" <vigneshr@ti.com>
> CC: "linux-mtd" <linux-mtd@lists.infradead.org>, "Tian Tao" <tiantao6@hisilicon.com>
> Gesendet: Montag, 12. April 2021 08:44:32
> Betreff: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit

> Fix the following coccicheck warning:
> drivers/mtd/mtdcore.c:296:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:306:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:237:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:275:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:286:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:264:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:227:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:162:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:143:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:218:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:208:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:199:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:190:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:152:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:181:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:134:8-16: WARNING: use scnprintf or sprintf
> drivers/mtd/mtdcore.c:171:8-16: WARNING: use scnprintf or sprintf

see:
https://lore.kernel.org/linux-mtd/CAFLxGvxC4KtvtU2rza_aGx2RPONxr7XygUwXCDriYiCr8qN3qg@mail.gmail.com/

Please explain why a patch is needed and what it fixes.

Thanks,
//richard
Richard Weinberger April 12, 2021, 8:07 a.m. UTC | #2
----- Ursprüngliche Mail -----
>>> Fix the following coccicheck warning:
>>> drivers/mtd/mtdcore.c:296:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:306:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:237:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:275:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:286:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:264:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:227:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:162:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:143:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:218:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:208:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:199:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:190:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:152:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:181:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:134:8-16: WARNING: use scnprintf or sprintf
>>> drivers/mtd/mtdcore.c:171:8-16: WARNING: use scnprintf or sprintf

>> see: [
>> https://lore.kernel.org/linux-mtd/CAFLxGvxC4KtvtU2rza_aGx2RPONxr7XygUwXCDriYiCr8qN3qg@mail.gmail.com/
>> |
>> https://lore.kernel.org/linux-mtd/CAFLxGvxC4KtvtU2rza_aGx2RPONxr7XygUwXCDriYiCr8qN3qg@mail.gmail.com/
>> ] Please explain why a patch is needed and what it fixes.

> Using syfs_emit will avoid buffer overrun by avoiding buf being null or buf
> being in the middle of the page.

> no function change.

All this needs to go into the commit message.
Like I said, please explain changes.

The coccicheck warning in the commit message is also close to useless because
it advises you to use scnprintf or sprintf, which is not what your patch does.

Thanks,
//richard
tiantao (H) April 12, 2021, 8:17 a.m. UTC | #3
在 2021/4/12 16:07, Richard Weinberger 写道:
> ----- Ursprüngliche Mail -----
>>>> Fix the following coccicheck warning:
>>>> drivers/mtd/mtdcore.c:296:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:306:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:237:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:275:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:286:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:264:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:227:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:162:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:143:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:218:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:208:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:199:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:190:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:152:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:181:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:134:8-16: WARNING: use scnprintf or sprintf
>>>> drivers/mtd/mtdcore.c:171:8-16: WARNING: use scnprintf or sprintf
>>> see: [
>>> https://lore.kernel.org/linux-mtd/CAFLxGvxC4KtvtU2rza_aGx2RPONxr7XygUwXCDriYiCr8qN3qg@mail.gmail.com/
>>> |
>>> https://lore.kernel.org/linux-mtd/CAFLxGvxC4KtvtU2rza_aGx2RPONxr7XygUwXCDriYiCr8qN3qg@mail.gmail.com/
>>> ] Please explain why a patch is needed and what it fixes.
>> Using syfs_emit will avoid buffer overrun by avoiding buf being null or buf
>> being in the middle of the page.
>> no function change.
> All this needs to go into the commit message.
> Like I said, please explain changes.
>
> The coccicheck warning in the commit message is also close to useless because
> it advises you to use scnprintf or sprintf, which is not what your patch does.

understand.

What do you think of the following commit message

Use sysfs_emit instead of snprintf to avoid buf overrun,because in 
sysfs_emit it strictly checks

whether buf is null or buf whether pagesize aligned, otherwise it 
returns an error.

>
> Thanks,
> //richard
> .
>
Richard Weinberger April 12, 2021, 8:25 a.m. UTC | #4
----- Ursprüngliche Mail -----
> understand.
> 
> What do you think of the following commit message
> 
> Use sysfs_emit instead of snprintf to avoid buf overrun,because in
> sysfs_emit it strictly checks
> 
> whether buf is null or buf whether pagesize aligned, otherwise it
> returns an error.

This makes perfectly sense! :-)
Additional you can also not that this issue was found by coccicheck.

Thanks,
//richard
tiantao (H) April 12, 2021, 8:29 a.m. UTC | #5
在 2021/4/12 16:25, Richard Weinberger 写道:
> ----- Ursprüngliche Mail -----
>> understand.
>>
>> What do you think of the following commit message
>>
>> Use sysfs_emit instead of snprintf to avoid buf overrun,because in
>> sysfs_emit it strictly checks
>>
>> whether buf is null or buf whether pagesize aligned, otherwise it
>> returns an error.
> This makes perfectly sense! :-)
> Additional you can also not that this issue was found by coccicheck.
thank you again.
>
> Thanks,
> //richard
> .
>
diff mbox series

Patch

diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 0bc6871..5449f79 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -131,7 +131,7 @@  static ssize_t mtd_type_show(struct device *dev,
 		type = "unknown";
 	}
 
-	return snprintf(buf, PAGE_SIZE, "%s\n", type);
+	return sysfs_emit(buf, "%s\n", type);
 }
 static DEVICE_ATTR(type, S_IRUGO, mtd_type_show, NULL);
 
@@ -140,7 +140,7 @@  static ssize_t mtd_flags_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "0x%lx\n", (unsigned long)mtd->flags);
+	return sysfs_emit(buf, "0x%lx\n", (unsigned long)mtd->flags);
 }
 static DEVICE_ATTR(flags, S_IRUGO, mtd_flags_show, NULL);
 
@@ -149,8 +149,7 @@  static ssize_t mtd_size_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%llu\n",
-		(unsigned long long)mtd->size);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)mtd->size);
 }
 static DEVICE_ATTR(size, S_IRUGO, mtd_size_show, NULL);
 
@@ -159,7 +158,7 @@  static ssize_t mtd_erasesize_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%lu\n", (unsigned long)mtd->erasesize);
+	return sysfs_emit(buf, "%lu\n", (unsigned long)mtd->erasesize);
 }
 static DEVICE_ATTR(erasesize, S_IRUGO, mtd_erasesize_show, NULL);
 
@@ -168,7 +167,7 @@  static ssize_t mtd_writesize_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%lu\n", (unsigned long)mtd->writesize);
+	return sysfs_emit(buf, "%lu\n", (unsigned long)mtd->writesize);
 }
 static DEVICE_ATTR(writesize, S_IRUGO, mtd_writesize_show, NULL);
 
@@ -178,7 +177,7 @@  static ssize_t mtd_subpagesize_show(struct device *dev,
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 	unsigned int subpagesize = mtd->writesize >> mtd->subpage_sft;
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", subpagesize);
+	return sysfs_emit(buf, "%u\n", subpagesize);
 }
 static DEVICE_ATTR(subpagesize, S_IRUGO, mtd_subpagesize_show, NULL);
 
@@ -187,7 +186,7 @@  static ssize_t mtd_oobsize_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%lu\n", (unsigned long)mtd->oobsize);
+	return sysfs_emit(buf, "%lu\n", (unsigned long)mtd->oobsize);
 }
 static DEVICE_ATTR(oobsize, S_IRUGO, mtd_oobsize_show, NULL);
 
@@ -196,7 +195,7 @@  static ssize_t mtd_oobavail_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->oobavail);
+	return sysfs_emit(buf, "%u\n", mtd->oobavail);
 }
 static DEVICE_ATTR(oobavail, S_IRUGO, mtd_oobavail_show, NULL);
 
@@ -205,7 +204,7 @@  static ssize_t mtd_numeraseregions_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->numeraseregions);
+	return sysfs_emit(buf, "%u\n", mtd->numeraseregions);
 }
 static DEVICE_ATTR(numeraseregions, S_IRUGO, mtd_numeraseregions_show,
 	NULL);
@@ -215,7 +214,7 @@  static ssize_t mtd_name_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%s\n", mtd->name);
+	return sysfs_emit(buf, "%s\n", mtd->name);
 }
 static DEVICE_ATTR(name, S_IRUGO, mtd_name_show, NULL);
 
@@ -224,7 +223,7 @@  static ssize_t mtd_ecc_strength_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->ecc_strength);
+	return sysfs_emit(buf, "%u\n", mtd->ecc_strength);
 }
 static DEVICE_ATTR(ecc_strength, S_IRUGO, mtd_ecc_strength_show, NULL);
 
@@ -234,7 +233,7 @@  static ssize_t mtd_bitflip_threshold_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->bitflip_threshold);
+	return sysfs_emit(buf, "%u\n", mtd->bitflip_threshold);
 }
 
 static ssize_t mtd_bitflip_threshold_store(struct device *dev,
@@ -261,7 +260,7 @@  static ssize_t mtd_ecc_step_size_show(struct device *dev,
 {
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", mtd->ecc_step_size);
+	return sysfs_emit(buf, "%u\n", mtd->ecc_step_size);
 
 }
 static DEVICE_ATTR(ecc_step_size, S_IRUGO, mtd_ecc_step_size_show, NULL);
@@ -272,7 +271,7 @@  static ssize_t mtd_ecc_stats_corrected_show(struct device *dev,
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 	struct mtd_ecc_stats *ecc_stats = &mtd->ecc_stats;
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", ecc_stats->corrected);
+	return sysfs_emit(buf, "%u\n", ecc_stats->corrected);
 }
 static DEVICE_ATTR(corrected_bits, S_IRUGO,
 		   mtd_ecc_stats_corrected_show, NULL);
@@ -283,7 +282,7 @@  static ssize_t mtd_ecc_stats_errors_show(struct device *dev,
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 	struct mtd_ecc_stats *ecc_stats = &mtd->ecc_stats;
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", ecc_stats->failed);
+	return sysfs_emit(buf, "%u\n", ecc_stats->failed);
 }
 static DEVICE_ATTR(ecc_failures, S_IRUGO, mtd_ecc_stats_errors_show, NULL);
 
@@ -293,7 +292,7 @@  static ssize_t mtd_badblocks_show(struct device *dev,
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 	struct mtd_ecc_stats *ecc_stats = &mtd->ecc_stats;
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", ecc_stats->badblocks);
+	return sysfs_emit(buf, "%u\n", ecc_stats->badblocks);
 }
 static DEVICE_ATTR(bad_blocks, S_IRUGO, mtd_badblocks_show, NULL);
 
@@ -303,7 +302,7 @@  static ssize_t mtd_bbtblocks_show(struct device *dev,
 	struct mtd_info *mtd = dev_get_drvdata(dev);
 	struct mtd_ecc_stats *ecc_stats = &mtd->ecc_stats;
 
-	return snprintf(buf, PAGE_SIZE, "%u\n", ecc_stats->bbtblocks);
+	return sysfs_emit(buf, "%u\n", ecc_stats->bbtblocks);
 }
 static DEVICE_ATTR(bbt_blocks, S_IRUGO, mtd_bbtblocks_show, NULL);