Commit 37252db6aa576c34fd794a5a54fb32d7a8b3a07a

Authored by Jiri Kosina
Committed by Rusty Russell
1 parent c3b92c8787

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

... ... @@ -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 }