

printf("len=%06d, cont=%s\n", strlen(outstr), outstr);
で済むところが、
strcpy(lenstr, "000000");
sprintf(tmp, "%d", strlen(outstr));
strcpy(&lenstr[6 - strlen(tmp)], tmp);
printf("len=%s, cont=%s\n", lenstr, outstr);
などとなっていたらしい。で済みそうなのに、コピペプログラミングの影響か、if (buf[i] == '\r' || buf[i] == '\n')
となっていたそうな。if (memcmp(&buf[i], "\r", 1) == 0 || memcmp(&buf[i], "\n", 1) == 0)