On Wed, Feb 04, 2015 at 03:55:03PM +0100, Benjamin Baier wrote:
> potentional double free in do-while-loop.
> found by llvm/scan-build
OK bluhm@
>
> Index: route6d.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/route6d/route6d.c,v
> retrieving revision 1.64
> diff -u -p -r1.64 route6d.c
> --- route6d.c 16 Jan 2015 06:40:20 -0000 1.64
> +++ route6d.c 4 Feb 2015 13:43:50 -0000
> @@ -2449,9 +2449,9 @@ krtread(int again)
> mib[5] = 0; /* No flags */
> do {
> retry++;
> + free(buf);
> + buf = NULL;
> errmsg = NULL;
> - if (buf)
> - free(buf);
> if (sysctl(mib, 6, NULL, &msize, NULL, 0) < 0) {
> errmsg = "sysctl estimate";
> continue;