potentional double free in do-while-loop.
found by llvm/scan-build

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;

Reply via email to