From: Petr Uzel Date: Wed, 10 Aug 2011 12:16:40 +0000 (+0200) Subject: dmesg: avoid mess at the end of dmesg output X-Git-Tag: v2.20-rc2~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=59202950584895cf7144df8fde14b216e73b1b2d;p=thirdparty%2Futil-linux.git dmesg: avoid mess at the end of dmesg output Since util-linux commit a7ee94f2204011f26232ed3133514bf6e0d4a62c, dmesg incorrectly calculates number of bytes that are remaining in the buffer in get_next_record(). This could, under specific circumstances, cause printing mess at the end of dmesg output: > dmesg | tail [ 1191.478725] Adding 285488k swap on /root/swapfile. Priority:-2 extents:15 across:1186612k [ 1205.588331] Adding 285488k swap on /root/swapfile. Priority:-2 extents:15 across:1186612k \xffffffba\xffffffba Reported-by: Glenn Doig Addresses: https://bugzilla.novell.com/show_bug.cgi?id=710417 Signed-off-by: Petr Uzel --- diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c index 94f8c111d8..705269db0d 100644 --- a/sys-utils/dmesg.c +++ b/sys-utils/dmesg.c @@ -494,6 +494,8 @@ static int get_next_record(struct dmesg_control *ctl, struct dmesg_record *rec) rec->next_size -= end - rec->next; rec->next = rec->next_size > 0 ? end + 1 : NULL; + if (rec->next_size > 0) + rec->next_size--; return 0; }