From: Chen Gang Date: Tue, 20 Aug 2013 06:05:04 +0000 (+0930) Subject: kernel/params.c: use scnprintf() instead of sprintf() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=f4940ab7c5992d3fabcda039744fb7657749798e;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git kernel/params.c: use scnprintf() instead of sprintf() For some strings (e.g. version string), they are permitted to be larger than PAGE_SIZE (although meaningless), so recommend to use scnprintf() instead of sprintf(). Signed-off-by: Chen Gang Signed-off-by: Rusty Russell --- diff --git a/kernel/params.c b/kernel/params.c index ec4299cfade8..e5f8f17e57cf 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -241,7 +241,8 @@ int parse_args(const char *doing, } \ int param_get_##name(char *buffer, const struct kernel_param *kp) \ { \ - return sprintf(buffer, format, *((type *)kp->arg)); \ + return scnprintf(buffer, PAGE_SIZE, format, \ + *((type *)kp->arg)); \ } \ struct kernel_param_ops param_ops_##name = { \ .set = param_set_##name, \ @@ -285,7 +286,7 @@ EXPORT_SYMBOL(param_set_charp); int param_get_charp(char *buffer, const struct kernel_param *kp) { - return sprintf(buffer, "%s", *((char **)kp->arg)); + return scnprintf(buffer, PAGE_SIZE, "%s", *((char **)kp->arg)); } EXPORT_SYMBOL(param_get_charp); @@ -829,7 +830,7 @@ ssize_t __modver_version_show(struct module_attribute *mattr, struct module_version_attribute *vattr = container_of(mattr, struct module_version_attribute, mattr); - return sprintf(buf, "%s\n", vattr->version); + return scnprintf(buf, PAGE_SIZE, "%s\n", vattr->version); } extern const struct module_version_attribute *__start___modver[];