Hi,

I noticed that tcpbench sometimes crashes when using -n and -b combined,
this is because of a double-free in the client initialization loop.

See patch below 

Erik

Index: usr.bin/tcpbench/tcpbench.c
===================================================================
RCS file: /cvs/src/usr.bin/tcpbench/tcpbench.c,v
retrieving revision 1.34
diff -u -r1.34 tcpbench.c
--- usr.bin/tcpbench/tcpbench.c 13 Apr 2012 19:23:32 -0000      1.34
+++ usr.bin/tcpbench/tcpbench.c 4 May 2012 21:29:55 -0000
@@ -879,7 +879,6 @@
                                if (bind(sock, (struct sockaddr *)aib->ai_addr,
                                    aib->ai_addrlen) == -1)
                                        err(1, "bind");
-                               freeaddrinfo(aib);
                        }
                        if (ptb->Tflag != -1 && ai->ai_family == AF_INET) {
                                if (setsockopt(sock, IPPROTO_IP, IP_TOS,
@@ -938,6 +937,8 @@
                set_slice_timer(mainstats.nconns > 0);
        }
        freeaddrinfo(aitop);
+       if (aib != NULL)
+               freeaddrinfo(aib);
 
        if (ptb->vflag && nconn > 1)
                fprintf(stderr, "%d connections established\n",

Reply via email to