[PATCH 02/12] x86/CPU/AMD: use correct format characters

From: Bill Wendling
Date: Thu Jun 09 2022 - 18:18:11 EST


From: Bill Wendling <isanbard@xxxxxxxxx>

When compiling with -Wformat, clang emits the following warnings:

arch/x86/kernel/cpu/mce/amd.c:1119:67: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
err = kobject_init_and_add(&b->kobj, &threshold_ktype, tb->kobj, get_name(cpu, bank, b));
^~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/cpu/mce/amd.c:1151:47: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
err = kobject_add(&b->blocks->kobj, b->kobj, b->blocks->kobj.name);
^~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/cpu/mce/amd.c:1157:42: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
err = kobject_add(&pos->kobj, b->kobj, pos->kobj.name);
^~~~~~~~~~~~~~
arch/x86/kernel/cpu/mce/amd.c:1187:43: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
err = kobject_add(b->kobj, &dev->kobj, name);
^~~~
"%s",

Use a string literal for the format string.

Link: https://github.com/ClangBuiltLinux/linux/issues/378
Signed-off-by: Bill Wendling <isanbard@xxxxxxxxx>
---
arch/x86/kernel/cpu/mce/amd.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c
index 1c87501e0fa3..d19bf0eb0abe 100644
--- a/arch/x86/kernel/cpu/mce/amd.c
+++ b/arch/x86/kernel/cpu/mce/amd.c
@@ -1116,7 +1116,8 @@ static int allocate_threshold_blocks(unsigned int cpu, struct threshold_bank *tb
else
tb->blocks = b;

- err = kobject_init_and_add(&b->kobj, &threshold_ktype, tb->kobj, get_name(cpu, bank, b));
+ err = kobject_init_and_add(&b->kobj, &threshold_ktype, tb->kobj, "%s",
+ get_name(cpu, bank, b));
if (err)
goto out_free;
recurse:
@@ -1148,13 +1149,13 @@ static int __threshold_add_blocks(struct threshold_bank *b)
struct threshold_block *tmp = NULL;
int err = 0;

- err = kobject_add(&b->blocks->kobj, b->kobj, b->blocks->kobj.name);
+ err = kobject_add(&b->blocks->kobj, b->kobj, "%s", b->blocks->kobj.name);
if (err)
return err;

list_for_each_entry_safe(pos, tmp, head, miscj) {

- err = kobject_add(&pos->kobj, b->kobj, pos->kobj.name);
+ err = kobject_add(&pos->kobj, b->kobj, "%s", pos->kobj.name);
if (err) {
list_for_each_entry_safe_reverse(pos, tmp, head, miscj)
kobject_del(&pos->kobj);
@@ -1184,7 +1185,7 @@ static int threshold_create_bank(struct threshold_bank **bp, unsigned int cpu,
if (nb && nb->bank4) {
/* yes, use it */
b = nb->bank4;
- err = kobject_add(b->kobj, &dev->kobj, name);
+ err = kobject_add(b->kobj, &dev->kobj, "%s", name);
if (err)
goto out;

--
2.36.1.255.ge46751e96f-goog