From: Juergen Perlinger Date: Sun, 23 Jul 2017 08:53:14 +0000 (+0200) Subject: [Bug 3417] ntpq ifstats packet counters can be negative X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd40149c220831f10771cd22b2bbbc92df0aa383;p=thirdparty%2Fntp.git [Bug 3417] ntpq ifstats packet counters can be negative bk: 597463fadxIVEux_XQCs5FtWPf4xIw --- diff --git a/ChangeLog b/ChangeLog index a1a1cfae4..91c67f072 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +--- +* [Bug 3417] ntpq ifstats packet counters can be negative + made IFSTATS counter quantities unsigned + --- (4.2.8p10-win-beta1) 2017/03/21 Released by Harlan Stenn (4.2.8p10) diff --git a/ntpq/ntpq-subs.c b/ntpq/ntpq-subs.c index 08f9d426a..f52713e40 100644 --- a/ntpq/ntpq-subs.c +++ b/ntpq/ntpq-subs.c @@ -307,12 +307,12 @@ typedef struct ifstats_row_tag { sockaddr_u bcast; int enabled; u_int flags; - int mcast_count; + u_int mcast_count; char name[32]; - int peer_count; - int received; - int sent; - int send_errors; + u_int peer_count; + u_int received; + u_int sent; + u_int send_errors; u_int ttl; u_int uptime; } ifstats_row; @@ -3314,7 +3314,7 @@ another_ifstats_field( "==============================================================================\n"); */ fprintf(fp, - "%3u %-24.24s %c %4x %3d %2d %6d %6d %6d %5d %8d\n" + "%3u %-24.24s %c %4x %3u %2u %6u %6u %6u %5u %8d\n" " %s\n", prow->ifnum, prow->name, (prow->enabled) @@ -3414,7 +3414,7 @@ ifstats( case 'm': if (1 == sscanf(tag, mc_fmt, &ui) && - 1 == sscanf(val, "%d", &row.mcast_count)) + 1 == sscanf(val, "%u", &row.mcast_count)) comprende = TRUE; break; @@ -3435,31 +3435,31 @@ ifstats( case 'p': if (1 == sscanf(tag, pc_fmt, &ui) && - 1 == sscanf(val, "%d", &row.peer_count)) + 1 == sscanf(val, "%u", &row.peer_count)) comprende = TRUE; break; case 'r': if (1 == sscanf(tag, rx_fmt, &ui) && - 1 == sscanf(val, "%d", &row.received)) + 1 == sscanf(val, "%u", &row.received)) comprende = TRUE; break; case 't': if (1 == sscanf(tag, tl_fmt, &ui) && - 1 == sscanf(val, "%d", &row.ttl)) + 1 == sscanf(val, "%u", &row.ttl)) comprende = TRUE; else if (1 == sscanf(tag, tx_fmt, &ui) && - 1 == sscanf(val, "%d", &row.sent)) + 1 == sscanf(val, "%u", &row.sent)) comprende = TRUE; else if (1 == sscanf(tag, txerr_fmt, &ui) && - 1 == sscanf(val, "%d", &row.send_errors)) + 1 == sscanf(val, "%u", &row.send_errors)) comprende = TRUE; break; case 'u': if (1 == sscanf(tag, up_fmt, &ui) && - 1 == sscanf(val, "%d", &row.uptime)) + 1 == sscanf(val, "%u", &row.uptime)) comprende = TRUE; break; }