printk: fix possible printk overrun
authorTejun Heo <htejun@gmail.com>
Thu, 14 Feb 2008 01:32:07 +0000 (10:32 +0900)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 26 Feb 2008 15:42:37 +0000 (07:42 -0800)
commitcf3680b90c7842cf91ed857ac4528f4e057da366
treef73af36b208fab34620808f0075cc54f51cfdfb0
parentbfa274e2436fc7ef72ef51c878083647f1cfd429
printk: fix possible printk overrun

printk recursion detection prepends message to printk_buf and offsets
printk_buf when actual message is printed but it forgets to trim buffer
length accordingly. This can result in overrun in extreme cases. Fix it.

[ mingo@elte.hu:

  bug was introduced by me via:

   commit 32a76006683f7b28ae3cc491da37716e002f198e
   Author: Ingo Molnar <mingo@elte.hu>
   Date:   Fri Jan 25 21:07:58 2008 +0100

       printk: make printk more robust by not allowing recursion
]

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/printk.c