diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c index 31e2949bfd804f9b4eb405f09b1670b4455a4fa6..ed4bb4d8d112817fe2117458651c714ee0642d6d 100644 --- a/src/xpdev/sockwrap.c +++ b/src/xpdev/sockwrap.c @@ -196,8 +196,8 @@ off_t sendfilesocket(int sock, int file, off_t *offset, off_t count) for (i = wr = 0; i < rd; i += wr) { wr = sendsocket(sock,buf+i,rd-i); if (wr > 0) { - if ((SSIZE_MAX - i) < wr) - wr = SSIZE_MAX - i; + if ((rd - i) < wr) + wr = rd - i; continue; } if (wr == SOCKET_ERROR && SOCKET_ERRNO == EWOULDBLOCK) {