diff -r 2dd8c225e94c -r acf27be56d26 contrib/chg/hgclient.c --- a/contrib/chg/hgclient.c Thu Aug 04 16:56:50 2016 +0200 +++ b/contrib/chg/hgclient.c Fri Aug 05 21:21:33 2016 +0900 @@ -126,15 +126,10 @@ return; /* assumes input request */ size_t cursize = 0; - int emptycount = 0; while (cursize < hgc->ctx.datasize) { rsize = recv(hgc->sockfd, hgc->ctx.data + cursize, hgc->ctx.datasize - cursize, 0); - /* rsize == 0 normally indicates EOF, while it's also a valid - * packet size for unix socket. treat it as EOF and abort if - * we get many empty responses in a row. */ - emptycount = (rsize == 0 ? emptycount + 1 : 0); - if (rsize < 0 || emptycount > 20) + if (rsize < 1) abortmsg("failed to read data block"); cursize += rsize; }