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",