Fix two bugs -
First, treat the return from read() as an int instead of an ssize_t. The latter is the official return type of read, but it's unsigned, so when read() returns a -1 on error, it looks like a huge positive number. Stupid. Whose fault is this? POSIX's? Second, make sure we never try to read on the listen socket. The result of these two bugs was that I was reading from the listen socket, and it was failing and returning -1, but that looked like a successful read.
Showing with 4 additions and 4 deletions