From: Arve Hjønnevåg Date: Tue, 15 Apr 2008 04:35:25 +0000 (-0700) Subject: printk: Fix log_buf_copy termination. X-Git-Tag: firefly_0821_release~7613^2~774 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0da19af0b8c8b8d8bd19a262479d49d8061c0c13;p=firefly-linux-kernel-4.4.55.git printk: Fix log_buf_copy termination. If idx was non-zero and the log had wrapped, len did not get truncated to stop at the last byte written to the log. --- diff --git a/kernel/printk.c b/kernel/printk.c index c78ed88446d6..cd8fbf3440a8 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -319,8 +319,8 @@ int log_buf_copy(char *dest, int idx, int len) if (idx < 0 || idx >= max) { ret = -1; } else { - if (len > max) - len = max; + if (len > max - idx) + len = max - idx; ret = len; idx += (log_end - max); while (len-- > 0)