apps/speed.c:2476: error: MEMORY_LEAK
  memory dynamically allocated by call to `malloc()` at line 2465, column 6 is not reachable after line 2476, column 10.
Showing all 8 steps of the trace


apps/speed.c:2458:1: start of procedure do_multi()
2456.   
2457.   #ifdef HAVE_FORK
2458. > static int do_multi(int multi)
2459.   	{
2460.   	int n;

apps/speed.c:2463:2: 
2461.   	int fd[2];
2462.   	int *fds;
2463. > 	static char sep[]=":";
2464.   
2465.   	fds=malloc(multi*sizeof *fds);

apps/speed.c:2465:2: 
2463.   	static char sep[]=":";
2464.   
2465. > 	fds=malloc(multi*sizeof *fds);
2466.   	for(n=0 ; n < multi ; ++n)
2467.   		{

apps/speed.c:2466:6: 
2464.   
2465.   	fds=malloc(multi*sizeof *fds);
2466. > 	for(n=0 ; n < multi ; ++n)
2467.   		{
2468.   		pipe(fd);

apps/speed.c:2466:12: Loop condition is true. Entering loop body
2464.   
2465.   	fds=malloc(multi*sizeof *fds);
2466.   	for(n=0 ; n < multi ; ++n)
                   ^
2467.   		{
2468.   		pipe(fd);

apps/speed.c:2468:3: 
2466.   	for(n=0 ; n < multi ; ++n)
2467.   		{
2468. > 		pipe(fd);
2469.   		if(fork())
2470.   			{

apps/speed.c:2469:6: Taking false branch
2467.   		{
2468.   		pipe(fd);
2469.   		if(fork())
             ^
2470.   			{
2471.   			close(fd[1]);

apps/speed.c:2476:4: 
2474.   		else
2475.   			{
2476. > 			close(fd[0]);
2477.   			close(1);
2478.   			dup(fd[1]);
