All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
@ 2021-04-12  6:44 Tian Tao
  2021-04-12  6:49 ` Richard Weinberger
  0 siblings, 1 reply; 6+ messages in thread
From: Tian Tao @ 2021-04-12  6:44 UTC (permalink / raw)
  To: miquel.raynal, richard, vigneshr; +Cc: linux-mtd, Tian Tao

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(-)

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);
 
-- 
2.7.4


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
  2021-04-12  6:44 [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit Tian Tao
@ 2021-04-12  6:49 ` Richard Weinberger
       [not found]   ` <049f8110-5777-db77-d374-275d1ceee81d@huawei.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Weinberger @ 2021-04-12  6:49 UTC (permalink / raw)
  To: Tian Tao; +Cc: Miquel Raynal, Vignesh Raghavendra, linux-mtd

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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
       [not found]   ` <049f8110-5777-db77-d374-275d1ceee81d@huawei.com>
@ 2021-04-12  8:07     ` Richard Weinberger
  2021-04-12  8:17       ` tiantao (H)
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Weinberger @ 2021-04-12  8:07 UTC (permalink / raw)
  To: tiantao (H); +Cc: Tian Tao, Miquel Raynal, Vignesh Raghavendra, linux-mtd

----- 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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
  2021-04-12  8:07     ` Richard Weinberger
@ 2021-04-12  8:17       ` tiantao (H)
  2021-04-12  8:25         ` Richard Weinberger
  0 siblings, 1 reply; 6+ messages in thread
From: tiantao (H) @ 2021-04-12  8:17 UTC (permalink / raw)
  To: Richard Weinberger
  Cc: Tian Tao, Miquel Raynal, Vignesh Raghavendra, linux-mtd


在 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
> .
>


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
  2021-04-12  8:17       ` tiantao (H)
@ 2021-04-12  8:25         ` Richard Weinberger
  2021-04-12  8:29           ` tiantao (H)
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Weinberger @ 2021-04-12  8:25 UTC (permalink / raw)
  To: tiantao; +Cc: Tian Tao, Miquel Raynal, Vignesh Raghavendra, linux-mtd

----- 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

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit
  2021-04-12  8:25         ` Richard Weinberger
@ 2021-04-12  8:29           ` tiantao (H)
  0 siblings, 0 replies; 6+ messages in thread
From: tiantao (H) @ 2021-04-12  8:29 UTC (permalink / raw)
  To: Richard Weinberger
  Cc: Tian Tao, Miquel Raynal, Vignesh Raghavendra, linux-mtd


在 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
> .
>


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-04-12  8:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-12  6:44 [PATCH] mtd: core: Convert sysfs sprintf/snprintf family to sysfs_emit Tian Tao
2021-04-12  6:49 ` Richard Weinberger
     [not found]   ` <049f8110-5777-db77-d374-275d1ceee81d@huawei.com>
2021-04-12  8:07     ` Richard Weinberger
2021-04-12  8:17       ` tiantao (H)
2021-04-12  8:25         ` Richard Weinberger
2021-04-12  8:29           ` tiantao (H)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.