Commit 37252db6aa576c34fd794a5a54fb32d7a8b3a07a
Committed by
Rusty Russell
1 parent
c3b92c8787
Exists in
master
and in
6 other branches
kmod: prevent kmod_loop_msg overflow in __request_module()
Due to post-increment in condition of kmod_loop_msg in __request_module(), the system log can be spammed by much more than 5 instances of the 'runaway loop' message if the number of events triggering it makes the kmod_loop_msg to overflow. Fix that by making sure we never increment it past the threshold. Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> CC: stable@kernel.org
Showing 1 changed file with 3 additions and 1 deletions Side-by-side Diff
kernel/kmod.c
... | ... | @@ -114,10 +114,12 @@ |
114 | 114 | atomic_inc(&kmod_concurrent); |
115 | 115 | if (atomic_read(&kmod_concurrent) > max_modprobes) { |
116 | 116 | /* We may be blaming an innocent here, but unlikely */ |
117 | - if (kmod_loop_msg++ < 5) | |
117 | + if (kmod_loop_msg < 5) { | |
118 | 118 | printk(KERN_ERR |
119 | 119 | "request_module: runaway loop modprobe %s\n", |
120 | 120 | module_name); |
121 | + kmod_loop_msg++; | |
122 | + } | |
121 | 123 | atomic_dec(&kmod_concurrent); |
122 | 124 | return -ENOMEM; |
123 | 125 | } |