svn commit: r263194 - head/usr.bin/ktrdump
Neel Natu
neel at FreeBSD.org
Fri Mar 14 21:35:17 UTC 2014
Author: neel
Date: Fri Mar 14 21:35:16 2014
New Revision: 263194
URL: http://svnweb.freebsd.org/changeset/base/263194
Log:
Fix an issue with ktrdump(8) where it would not print all entries in the
KTR buffer.
This happens when 'i' tries to wrap around from 0 to 'entries - 1'. Since 'i'
is a signed integer the modulo operation actually returns a negative number.
Fix this by computing the next index to use "by hand" instead of relying
on the modulo operator.
Modified:
head/usr.bin/ktrdump/ktrdump.c
Modified: head/usr.bin/ktrdump/ktrdump.c
==============================================================================
--- head/usr.bin/ktrdump/ktrdump.c Fri Mar 14 21:18:41 2014 (r263193)
+++ head/usr.bin/ktrdump/ktrdump.c Fri Mar 14 21:35:16 2014 (r263194)
@@ -219,8 +219,11 @@ main(int ac, char **av)
/*
* Now tear through the trace buffer.
*/
- if (!iflag)
- i = (index - 1) % entries;
+ if (!iflag) {
+ i = index - 1;
+ if (i < 0)
+ i = entries - 1;
+ }
tlast = -1;
for (;;) {
if (buf[i].ktr_desc == NULL)
@@ -288,7 +291,8 @@ next: if ((c = *p++) == '\0')
if (!iflag) {
if (i == index)
break;
- i = (i - 1) % entries;
+ if (--i < 0)
+ i = entries - 1;
} else {
if (++i == entries)
break;
More information about the svn-src-head
mailing list