Commit faf8c714f4508207a9c81cc94dafc76ed6680b44 caused a regression: parameter names longer than MAX_KBUILD_MODNAME will now be rejected, although we just need to keep the module name part that short. This patch restores the old behaviour while still avoiding that memchr is called with its length parameter larger than the total string length. Signed-off-by: Jan Kiszka <[email protected]> --- kernel/params.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) Index: linux-2.6.24-rc1-xeno/kernel/params.c =================================================================== --- linux-2.6.24-rc1-xeno.orig/kernel/params.c +++ linux-2.6.24-rc1-xeno/kernel/params.c @@ -592,19 +592,16 @@ static void __init param_sysfs_builtin(v for (i=0; i < __stop___param - __start___param; i++) { char *dot; - size_t kplen; + size_t max_name_len; kp = &__start___param[i]; - kplen = strlen(kp->name); + max_name_len = + min_t(size_t, MAX_KBUILD_MODNAME, strlen(kp->name)); - /* We do not handle args without periods. */ - if (kplen > MAX_KBUILD_MODNAME) { - DEBUGP("kernel parameter name is too long: %s\n", kp->name); - continue; - } - dot = memchr(kp->name, '.', kplen); + dot = memchr(kp->name, '.', max_name_len); if (!dot) { - DEBUGP("couldn't find period in %s\n", kp->name); + DEBUGP("couldn't find period in first %d characters " + "of %s\n", MAX_KBUILD_MODNAME, kp->name); continue; } name_len = dot - kp->name;
Attachment:
signature.asc
Description: OpenPGP digital signature
- Prev by Date: [PATCH 4/4] leds-clevo-mail: hw acceleration for Clevo mail LED driver
- Next by Date: [PATCH] mac80211: fix printk() format string
- Previous by thread: [PATCH 4/4] leds-clevo-mail: hw acceleration for Clevo mail LED driver
- Next by thread: [PATCH] mac80211: fix printk() format string
- Index(es):