From: Chen Gang Date: Tue, 20 Aug 2013 06:04:21 +0000 (+0930) Subject: kernel/module.c: use scnprintf() instead of sprintf() X-Git-Tag: firefly_0821_release~176^2~5433^2~2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cc56ded3fdd365e07e03315379ee6612a68fd817;p=firefly-linux-kernel-4.4.55.git kernel/module.c: use scnprintf() instead of sprintf() For some strings, they are permitted to be larger than PAGE_SIZE, so need use scnprintf() instead of sprintf(), or it will cause issue. One case is: if a module version is crazy defined (length more than PAGE_SIZE), 'modinfo' command is still OK (print full contents), but for "cat /sys/modules/'modname'/version", will cause issue in kernel. Signed-off-by: Chen Gang Signed-off-by: Rusty Russell --- diff --git a/kernel/module.c b/kernel/module.c index 4eb26b6d6547..40ee1dc3c3bf 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -604,7 +604,7 @@ static void setup_modinfo_##field(struct module *mod, const char *s) \ static ssize_t show_modinfo_##field(struct module_attribute *mattr, \ struct module_kobject *mk, char *buffer) \ { \ - return sprintf(buffer, "%s\n", mk->mod->field); \ + return scnprintf(buffer, PAGE_SIZE, "%s\n", mk->mod->field); \ } \ static int modinfo_##field##_exists(struct module *mod) \ { \