diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2003-12-11 07:46:08 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2003-12-11 07:46:08 +0000 |
| commit | 56f9b096322f82081133597ec2f884a90e2e0a40 (patch) | |
| tree | d2f42b400eee213dd1a67d9c9e15d1119a1a01a5 /usr.bin/vmstat | |
| parent | 165d50f626cdc5713b197f633e2a058f4f81710a (diff) | |
Notes
Diffstat (limited to 'usr.bin/vmstat')
| -rw-r--r-- | usr.bin/vmstat/vmstat.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.bin/vmstat/vmstat.c b/usr.bin/vmstat/vmstat.c index 3255e7be6e39..e034911fd1ed 100644 --- a/usr.bin/vmstat/vmstat.c +++ b/usr.bin/vmstat/vmstat.c @@ -852,10 +852,13 @@ dointr(void) kread(X_INTRCNT, intrcnt, intrcntlen); kread(X_INTRNAMES, intrname, inamlen); } else { - mysysctl("hw.intrcnt", NULL, &intrcntlen, NULL, 0); - if ((intrcnt = malloc(intrcntlen)) == NULL) - err(1, "calloc()"); - mysysctl("hw.intrcnt", intrcnt, &intrcntlen, NULL, 0); + for (intrcnt = NULL, intrcntlen = 1024; ; intrcntlen *= 2) { + if ((intrcnt = reallocf(intrcnt, intrcntlen)) == NULL) + err(1, "reallocf()"); + if (mysysctl("hw.intrcnt", + intrcnt, &intrcntlen, NULL, 0) == 0) + break; + } for (intrname = NULL, inamlen = 1024; ; inamlen *= 2) { if ((intrname = reallocf(intrname, inamlen)) == NULL) err(1, "reallocf()"); |
