diff --git a/connector/c/tnt_io.c b/connector/c/tnt_io.c index 0701351319405bb4301a2ab1bf584fcf5f1a0574..0d45b80754b5c0b60ddce99eb591cffcf74e81eb 100644 --- a/connector/c/tnt_io.c +++ b/connector/c/tnt_io.c @@ -420,12 +420,13 @@ tnt_io_recv(struct tnt *t, char *buf, size_t size) } t->rbuf.off = 0; - t->rbuf.top = tnt_io_recv_raw(t, t->rbuf.buf, t->rbuf.size); - if (t->rbuf.top <= 0) { + ssize_t top = tnt_io_recv_raw(t, t->rbuf.buf, t->rbuf.size); + if (top <= 0) { t->errno_ = errno; return TNT_ESYSTEM; } + t->rbuf.top = top; if (rv <= t->rbuf.top) { memcpy(buf + off, t->rbuf.buf, rv); t->rbuf.off = rv;