Fix race between cat /proc/*/wchan and rmmod et al
authorAlexey Dobriyan <adobriyan@sw.ru>
Tue, 8 May 2007 07:28:43 +0000 (00:28 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:15:08 +0000 (11:15 -0700)
commit9d65cb4a1718a072898c7a57a3bc61b2dc4bcd4d
tree9e3fd1c9e61e8ed16959d115a9a3f6f7eb0bbf21
parentffb45122766db220d0bf3d01848d575fbbcb6430
Fix race between cat /proc/*/wchan and rmmod et al

kallsyms_lookup() can go iterating over modules list unprotected which is OK
for emergency situations (oops), but not OK for regular stuff like
/proc/*/wchan.

Introduce lookup_symbol_name()/lookup_module_symbol_name() which copy symbol
name into caller-supplied buffer or return -ERANGE.  All copying is done with
module_mutex held, so...

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/base.c
include/linux/kallsyms.h
include/linux/module.h
kernel/kallsyms.c
kernel/module.c
kernel/time/timer_list.c
kernel/time/timer_stats.c