Date: Fri, 14 Mar 2014 21:35:17 +0000 (UTC) From: Neel Natu <neel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r263194 - head/usr.bin/ktrdump Message-ID: <201403142135.s2ELZHM2000767@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403142135.s2ELZHM2000767>