diff options
-rw-r--r-- | kernel/params.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/params.c b/kernel/params.c index 1d6aca288cdc..16f269e9ddc9 100644 --- a/kernel/params.c +++ b/kernel/params.c | |||
@@ -592,11 +592,17 @@ static void __init param_sysfs_builtin(void) | |||
592 | 592 | ||
593 | for (i=0; i < __stop___param - __start___param; i++) { | 593 | for (i=0; i < __stop___param - __start___param; i++) { |
594 | char *dot; | 594 | char *dot; |
595 | size_t kplen; | ||
595 | 596 | ||
596 | kp = &__start___param[i]; | 597 | kp = &__start___param[i]; |
598 | kplen = strlen(kp->name); | ||
597 | 599 | ||
598 | /* We do not handle args without periods. */ | 600 | /* We do not handle args without periods. */ |
599 | dot = memchr(kp->name, '.', MAX_KBUILD_MODNAME); | 601 | if (kplen > MAX_KBUILD_MODNAME) { |
602 | DEBUGP("kernel parameter name is too long: %s\n", kp->name); | ||
603 | continue; | ||
604 | } | ||
605 | dot = memchr(kp->name, '.', kplen); | ||
600 | if (!dot) { | 606 | if (!dot) { |
601 | DEBUGP("couldn't find period in %s\n", kp->name); | 607 | DEBUGP("couldn't find period in %s\n", kp->name); |
602 | continue; | 608 | continue; |