diff options
| author | Mikolaj Golub <trociny@FreeBSD.org> | 2012-02-01 18:03:21 +0000 |
|---|---|---|
| committer | Mikolaj Golub <trociny@FreeBSD.org> | 2012-02-01 18:03:21 +0000 |
| commit | 003e7e4928246e2b16e1f49b39d56f0258f7102c (patch) | |
| tree | 62c3ababa9fa71d02f96b1fa42534b2114602d4f /usr.bin/sockstat | |
| parent | 767993ec977acedb1ffe308ec0f6caa1895ff826 (diff) | |
Notes
Diffstat (limited to 'usr.bin/sockstat')
| -rw-r--r-- | usr.bin/sockstat/sockstat.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index dff776108ed9c..0114cc47822df 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -296,7 +296,7 @@ gather_inet(int proto) break; if (errno == ENOENT) goto out; - if (errno != ENOMEM) + if (errno != ENOMEM || len != bufsize) err(1, "sysctlbyname()"); bufsize *= 2; } @@ -424,7 +424,7 @@ gather_unix(int proto) len = bufsize; if (sysctlbyname(varname, buf, &len, NULL, 0) == 0) break; - if (errno != ENOMEM) + if (errno != ENOMEM || len != bufsize) err(1, "sysctlbyname()"); bufsize *= 2; } @@ -476,14 +476,15 @@ out: static void getfiles(void) { - size_t len; + size_t len, olen; - if ((xfiles = malloc(len = sizeof *xfiles)) == NULL) + olen = len = sizeof *xfiles; + if ((xfiles = malloc(len)) == NULL) err(1, "malloc()"); while (sysctlbyname("kern.file", xfiles, &len, 0, 0) == -1) { - if (errno != ENOMEM) + if (errno != ENOMEM || len != olen) err(1, "sysctlbyname()"); - len *= 2; + olen = len *= 2; if ((xfiles = realloc(xfiles, len)) == NULL) err(1, "realloc()"); } |
