Felix Fietkau edc8daeffe kernel: crashlog: Avoid out-of-bounds write
vsnprintf returns the number of chars that would have been written, not
the actual number of chars written. This can lead to crashlog_buf->len
being too big which in turn can lead to get_maxlen() returning negative
numbers. The length argument of kmsg_dump_get_buffer will be casted to
a size_t which makes a negative input a big positive number allowing
kmsg_dump_get_buffer to write out of bounds.

Fix this by using vscnprintf which returns the actually written number
of chars.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37820 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-21 20:59:25 +00:00
..
2013-08-18 01:25:41 +00:00
2013-08-02 20:13:54 +00:00
2013-08-02 20:13:54 +00:00
2013-08-02 16:16:23 +00:00
2013-08-02 16:16:23 +00:00