فهرست منبع

x86: make "apic" an early_param() on 32-bit, NULL check

Cyrill Gorcunov observed:

> you turned it into early_param so now it's NULL injecting vulnerabled.
> Could you please add checking for NULL str param?

fix that.

Also, change the name of 'str' into 'arg', to make it more apparent
that this is an optional argument that can be NULL, not a string
parameter that is empty when unset.

Reported-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Rene Herman 17 سال پیش
والد
کامیت
48d97cb65e
1فایلهای تغییر یافته به همراه7 افزوده شده و 3 حذف شده
  1. 7 3
      arch/x86/kernel/apic_32.c

+ 7 - 3
arch/x86/kernel/apic_32.c

@@ -1720,12 +1720,16 @@ static int __init parse_lapic_timer_c2_ok(char *arg)
 }
 }
 early_param("lapic_timer_c2_ok", parse_lapic_timer_c2_ok);
 early_param("lapic_timer_c2_ok", parse_lapic_timer_c2_ok);
 
 
-static int __init apic_set_verbosity(char *str)
+static int __init apic_set_verbosity(char *arg)
 {
 {
-	if (strcmp("debug", str) == 0)
+	if (!arg)
+		return -EINVAL;
+
+	if (strcmp(arg, "debug") == 0)
 		apic_verbosity = APIC_DEBUG;
 		apic_verbosity = APIC_DEBUG;
-	else if (strcmp("verbose", str) == 0)
+	else if (strcmp(arg, "verbose") == 0)
 		apic_verbosity = APIC_VERBOSE;
 		apic_verbosity = APIC_VERBOSE;
+
 	return 0;
 	return 0;
 }
 }
 early_param("apic", apic_set_verbosity);
 early_param("apic", apic_set_verbosity);