From 1ea77e90a7ba6eb03ef9b3fc9b7d651d068676a2 Mon Sep 17 00:00:00 2001 From: ru Date: Mon, 20 Nov 2006 16:04:41 +0000 Subject: - Fix types of "struct vmmeter" members so they are unsigned. - Fix overflow bugs in sysctl(8), systat(1), and vmstat(8) when printing values of "struct vmmeter" in kilobytes as they don't necessarily fit into 32 bits. (Fix sysctl(8) reporting of a total virtual memory; it's in pages too.) --- sbin/sysctl/sysctl.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'sbin/sysctl') diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index 6fd8c55..3f1cf4d 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -54,6 +54,7 @@ static const char rcsid[] = #include #include #include +#include #include #include #include @@ -395,18 +396,18 @@ S_vmtotal(int l2, void *p) "%hu Sleep: %hu)\n", v->t_rq, v->t_dw, v->t_pw, v->t_sl); printf( - "Virtual Memory:\t\t(Total: %luK, Active %lldK)\n", - (unsigned long)v->t_vm / 1024, - (long long)v->t_avm * pageKilo); - printf("Real Memory:\t\t(Total: %lldK Active %lldK)\n", - (long long)v->t_rm * pageKilo, (long long)v->t_arm * pageKilo); - printf("Shared Virtual Memory:\t(Total: %lldK Active: %lldK)\n", - (long long)v->t_vmshr * pageKilo, - (long long)v->t_avmshr * pageKilo); - printf("Shared Real Memory:\t(Total: %lldK Active: %lldK)\n", - (long long)v->t_rmshr * pageKilo, - (long long)v->t_armshr * pageKilo); - printf("Free Memory Pages:\t%lldK\n", (long long)v->t_free * pageKilo); + "Virtual Memory:\t\t(Total: %zuK, Active %zuK)\n", + (uintmax_t)v->t_vm * pageKilo, + (uintmax_t)v->t_avm * pageKilo); + printf("Real Memory:\t\t(Total: %zuK Active %zuK)\n", + (uintmax_t)v->t_rm * pageKilo, (uintmax_t)v->t_arm * pageKilo); + printf("Shared Virtual Memory:\t(Total: %zuK Active: %zuK)\n", + (uintmax_t)v->t_vmshr * pageKilo, + (uintmax_t)v->t_avmshr * pageKilo); + printf("Shared Real Memory:\t(Total: %zuK Active: %zuK)\n", + (uintmax_t)v->t_rmshr * pageKilo, + (uintmax_t)v->t_armshr * pageKilo); + printf("Free Memory Pages:\t%zuK\n", (uintmax_t)v->t_free * pageKilo); return (0); } -- cgit v1.1