lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202503151417004728U9HCHFf6b_zP5GsZuMdu@zte.com.cn>
Date: Sat, 15 Mar 2025 14:17:00 +0800 (CST)
From: <xie.ludan@....com.cn>
To: <petr.pavlu@...e.com>
Cc: <linux@...ssschuh.net>, <mcgrof@...nel.org>, <thorsten.blum@...ux.dev>,
        <linux-kernel@...r.kernel.org>
Subject: [PATCH linux-next] params: use sysfs_emit() instead of scnprintf().

From: XieLudan <xie.ludan@....com.cn>

Follow the advice in Documentation/filesystems/sysfs.rst:
show() should only use sysfs_emit() or sysfs_emit_at() when formatting
the value to be returned to user space.

Signed-off-by: XieLudan <xie.ludan@....com.cn>
---
 kernel/params.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/params.c b/kernel/params.c
index 2509f216c9f3..89ae571af266 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -219,7 +219,7 @@ char *parse_args(const char *doing,
 	}								\
 	int param_get_##name(char *buffer, const struct kernel_param *kp) \
 	{								\
-		return scnprintf(buffer, PAGE_SIZE, format "\n",	\
+		return sysfs_emit(buffer, format "\n",	\
 				*((type *)kp->arg));			\
 	}								\
 	const struct kernel_param_ops param_ops_##name = {			\
@@ -289,7 +289,7 @@ EXPORT_SYMBOL(param_set_charp);
 
 int param_get_charp(char *buffer, const struct kernel_param *kp)
 {
-	return scnprintf(buffer, PAGE_SIZE, "%s\n", *((char **)kp->arg));
+	return sysfs_emit(buffer, "%s\n", *((char **)kp->arg));
 }
 EXPORT_SYMBOL(param_get_charp);
 
@@ -527,7 +527,7 @@ EXPORT_SYMBOL(param_set_copystring);
 int param_get_string(char *buffer, const struct kernel_param *kp)
 {
 	const struct kparam_string *kps = kp->str;
-	return scnprintf(buffer, PAGE_SIZE, "%s\n", kps->string);
+	return sysfs_emit(buffer, "%s\n", kps->string);
 }
 EXPORT_SYMBOL(param_get_string);
 
@@ -860,7 +860,7 @@ ssize_t __modver_version_show(const struct module_attribute *mattr,
 	const struct module_version_attribute *vattr =
 		container_of_const(mattr, struct module_version_attribute, mattr);
 
-	return scnprintf(buf, PAGE_SIZE, "%s\n", vattr->version);
+	return sysfs_emit(buf, "%s\n", vattr->version);
 }
 
 extern const struct module_version_attribute __start___modver[];
-- 
2.25.1
<div class="zcontentRow"><p><span style="font-family: Arial, Helvetica, &quot;Microsoft Yahei&quot;, sans-serif; background-color: rgb(255, 255, 255);">From: XieLudan &lt;xie.ludan@....com.cn&gt;</span></p><p><br></p><p>Follow the advice in Documentation/filesystems/sysfs.rst:</p><p>show() should only use sysfs_emit() or sysfs_emit_at() when formatting</p><p>the value to be returned to user space.</p><p><br></p><p>Signed-off-by: XieLudan &lt;xie.ludan@....com.cn&gt;</p><p>---</p><p>&nbsp;kernel/params.c | 8 ++++----</p><p>&nbsp;1 file changed, 4 insertions(+), 4 deletions(-)</p><p><br></p><p>diff --git a/kernel/params.c b/kernel/params.c</p><p>index 2509f216c9f3..89ae571af266 100644</p><p>--- a/kernel/params.c</p><p>+++ b/kernel/params.c</p><p>@@ -219,7 +219,7 @@ char *parse_args(const char *doing,</p><p>&nbsp;<span style="white-space:pre">	</span>}<span style="white-space:pre">								</span>\</p><p>&nbsp;<span style="white-space:pre">	</span>int param_get_##name(char *buffer, const struct kernel_param *kp) \</p><p>&nbsp;<span style="white-space:pre">	</span>{<span style="white-space:pre">								</span>\</p><p>-<span style="white-space:pre">		</span>return scnprintf(buffer, PAGE_SIZE, format "\n",<span style="white-space:pre">	</span>\</p><p>+<span style="white-space:pre">		</span>return sysfs_emit(buffer, format "\n",<span style="white-space:pre">	</span>\</p><p>&nbsp;<span style="white-space:pre">				</span>*((type *)kp-&gt;arg));<span style="white-space:pre">			</span>\</p><p>&nbsp;<span style="white-space:pre">	</span>}<span style="white-space:pre">								</span>\</p><p>&nbsp;<span style="white-space:pre">	</span>const struct kernel_param_ops param_ops_##name = {<span style="white-space:pre">			</span>\</p><p>@@ -289,7 +289,7 @@ EXPORT_SYMBOL(param_set_charp);</p><p>&nbsp;</p><p>&nbsp;int param_get_charp(char *buffer, const struct kernel_param *kp)</p><p>&nbsp;{</p><p>-<span style="white-space:pre">	</span>return scnprintf(buffer, PAGE_SIZE, "%s\n", *((char **)kp-&gt;arg));</p><p>+<span style="white-space:pre">	</span>return sysfs_emit(buffer, "%s\n", *((char **)kp-&gt;arg));</p><p>&nbsp;}</p><p>&nbsp;EXPORT_SYMBOL(param_get_charp);</p><p>&nbsp;</p><p>@@ -527,7 +527,7 @@ EXPORT_SYMBOL(param_set_copystring);</p><p>&nbsp;int param_get_string(char *buffer, const struct kernel_param *kp)</p><p>&nbsp;{</p><p>&nbsp;<span style="white-space:pre">	</span>const struct kparam_string *kps = kp-&gt;str;</p><p>-<span style="white-space:pre">	</span>return scnprintf(buffer, PAGE_SIZE, "%s\n", kps-&gt;string);</p><p>+<span style="white-space:pre">	</span>return sysfs_emit(buffer, "%s\n", kps-&gt;string);</p><p>&nbsp;}</p><p>&nbsp;EXPORT_SYMBOL(param_get_string);</p><p>&nbsp;</p><p>@@ -860,7 +860,7 @@ ssize_t __modver_version_show(const struct module_attribute *mattr,</p><p>&nbsp;<span style="white-space:pre">	</span>const struct module_version_attribute *vattr =</p><p>&nbsp;<span style="white-space:pre">		</span>container_of_const(mattr, struct module_version_attribute, mattr);</p><p>&nbsp;</p><p>-<span style="white-space:pre">	</span>return scnprintf(buf, PAGE_SIZE, "%s\n", vattr-&gt;version);</p><p>+<span style="white-space:pre">	</span>return sysfs_emit(buf, "%s\n", vattr-&gt;version);</p><p>&nbsp;}</p><p>&nbsp;</p><p>&nbsp;extern const struct module_version_attribute __start___modver[];</p><p>--&nbsp;</p><p>2.25.1</p><p style="font-size:14px;font-family:微软雅黑,Microsoft YaHei;"><br></p><p style="font-size:14px;font-family:微软雅黑,Microsoft YaHei;"><br></p><p style="font-size:14px;font-family:微软雅黑,Microsoft YaHei;"><br></p><p style="font-size:14px;font-family:微软雅黑,Microsoft YaHei;"><br></p></div>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ