public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* NULL terminate over-long /proc/kallsyms symbols
@ 2006-07-05 16:59 Andreas Gruenbacher
  2006-07-05 17:03 ` Daniel Bonekeeper
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Andreas Gruenbacher @ 2006-07-05 16:59 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

Got a customer bug report (https://bugzilla.novell.com/190296)
about kernel symbols longer than 127 characters which end up in
a string buffer that is not NULL terminated, leading to garbage 
in /proc/kallsyms. Using strlcpy prevents this from happening,
even though such symbols still won't come out right.

A better fix would be to not use a fixed-size buffer, but it's
probably not worth the trouble. (Modversion'ed symbols even have
a length limit of 60.)

(This patch has been ested on a 2.6.16 kernel.)

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

Index: linux-2.6.17/kernel/module.c
===================================================================
--- linux-2.6.17.orig/kernel/module.c
+++ linux-2.6.17/kernel/module.c
@@ -1935,7 +1935,7 @@ struct module *module_get_kallsym(unsign
 		if (symnum < mod->num_symtab) {
 			*value = mod->symtab[symnum].st_value;
 			*type = mod->symtab[symnum].st_info;
-			strncpy(namebuf,
+			strlcpy(namebuf,
 				mod->strtab + mod->symtab[symnum].st_name,
 				127);
 			mutex_unlock(&module_mutex);

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-07-06 18:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-05 16:59 NULL terminate over-long /proc/kallsyms symbols Andreas Gruenbacher
2006-07-05 17:03 ` Daniel Bonekeeper
2006-07-05 17:06   ` Christoph Hellwig
2006-07-06 18:00   ` Avi Kivity
2006-07-05 17:13 ` Andreas Schwab
2006-07-05 19:34 ` Andrew Morton
2006-07-05 19:42   ` Andreas Gruenbacher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox