summaryrefslogtreecommitdiffstats
path: root/sys-utils/dmesg.c
diff options
context:
space:
mode:
authorPetr Uzel2011-08-10 14:16:40 +0200
committerKarel Zak2011-08-15 14:28:21 +0200
commit59202950584895cf7144df8fde14b216e73b1b2d (patch)
treefce88905f48f6755ef8588c8233b1d62944882cf /sys-utils/dmesg.c
parentlogger: use simple apostrophe instead of multibyte char in logger.1 (diff)
downloadkernel-qcow2-util-linux-59202950584895cf7144df8fde14b216e73b1b2d.tar.gz
kernel-qcow2-util-linux-59202950584895cf7144df8fde14b216e73b1b2d.tar.xz
kernel-qcow2-util-linux-59202950584895cf7144df8fde14b216e73b1b2d.zip
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 <doiggl@velocitynet.com.au> Addresses: https://bugzilla.novell.com/show_bug.cgi?id=710417 Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
Diffstat (limited to 'sys-utils/dmesg.c')
-rw-r--r--sys-utils/dmesg.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c
index 94f8c111d..705269db0 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;
}