diff options
author | John Baldwin <jhb@FreeBSD.org> | 2009-12-29 15:48:04 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2009-12-29 15:48:04 +0000 |
commit | c34169d468a7813bc9f305b6648335c359197dd4 (patch) | |
tree | 831dfa8f83bedcddcee8fad9a5325c2ae25be883 | |
parent | 5d2874abdda9d9a7209a68e5cbac409f2330464a (diff) | |
download | src-c34169d468a7813bc9f305b6648335c359197dd4.tar.gz src-c34169d468a7813bc9f305b6648335c359197dd4.zip |
Use reallocf() to simplify some logic.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=201202
-rw-r--r-- | usr.sbin/arp/arp.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c index 8a3410fd8f82..2982f48bec41 100644 --- a/usr.sbin/arp/arp.c +++ b/usr.sbin/arp/arp.c @@ -493,7 +493,7 @@ search(u_long addr, action_fn *action) { int mib[6]; size_t needed; - char *lim, *buf, *newbuf, *next; + char *lim, *buf, *next; struct rt_msghdr *rtm; struct sockaddr_inarp *sin2; struct sockaddr_dl *sdl; @@ -516,13 +516,9 @@ search(u_long addr, action_fn *action) return 0; buf = NULL; for (;;) { - newbuf = realloc(buf, needed); - if (newbuf == NULL) { - if (buf != NULL) - free(buf); + buf = reallocf(buf, needed); + if (buf == NULL) errx(1, "could not reallocate memory"); - } - buf = newbuf; st = sysctl(mib, 6, buf, &needed, NULL, 0); if (st == 0 || errno != ENOMEM) break; |