apps/speed.c:1820: error: NULL_DEREFERENCE
  pointer `fds` last assigned on line 1813 could be null and is dereferenced at line 1820, column 4.
Showing all 9 steps of the trace


apps/speed.c:1806:1: start of procedure do_multi()
1804.   
1805.   #ifdef HAVE_FORK
1806. > static int do_multi(int multi)
1807.   	{
1808.   	int n;

apps/speed.c:1811:2: 
1809.   	int fd[2];
1810.   	int *fds;
1811. > 	static char sep[]=":";
1812.   
1813.   	fds=malloc(multi*sizeof *fds);

apps/speed.c:1813:2: 
1811.   	static char sep[]=":";
1812.   
1813. > 	fds=malloc(multi*sizeof *fds);
1814.   	for(n=0 ; n < multi ; ++n)
1815.   		{

apps/speed.c:1814:6: 
1812.   
1813.   	fds=malloc(multi*sizeof *fds);
1814. > 	for(n=0 ; n < multi ; ++n)
1815.   		{
1816.   		pipe(fd);

apps/speed.c:1814:12: Loop condition is true. Entering loop body
1812.   
1813.   	fds=malloc(multi*sizeof *fds);
1814.   	for(n=0 ; n < multi ; ++n)
                   ^
1815.   		{
1816.   		pipe(fd);

apps/speed.c:1816:3: 
1814.   	for(n=0 ; n < multi ; ++n)
1815.   		{
1816. > 		pipe(fd);
1817.   		if(fork())
1818.   			{

apps/speed.c:1817:6: Taking true branch
1815.   		{
1816.   		pipe(fd);
1817.   		if(fork())
             ^
1818.   			{
1819.   			close(fd[1]);

apps/speed.c:1819:4: 
1817.   		if(fork())
1818.   			{
1819. > 			close(fd[1]);
1820.   			fds[n]=fd[0];
1821.   			}

apps/speed.c:1820:4: 
1818.   			{
1819.   			close(fd[1]);
1820. > 			fds[n]=fd[0];
1821.   			}
1822.   		else
