diff --git a/client/tarantool/tc_admin.c b/client/tarantool/tc_admin.c index 003227efea78a520e3959db0133b82f6f277d644..bdd4a806837c5dd05fbe2f6e2d92e738ac1084a9 100644 --- a/client/tarantool/tc_admin.c +++ b/client/tarantool/tc_admin.c @@ -122,9 +122,16 @@ int tc_admin_reply(struct tc_admin *a, char **r, size_t *size) memcpy(buf + off, rx, rxi); off += rxi; buf[off] = 0; - if (off >= 10) { - if (!memcmp(buf, "---\r\n", 5) && - !memcmp(buf + off - 5, "...\r\n", 5)) { + + if (off >= 8) { + int done_cr = + !memcmp(buf, "---\n", 4) && + !memcmp(buf + off - 4, "...\n", 4); + int done_crlf = !done_cr && + off >= 10 && + !memcmp(buf, "---\r\n", 5) && + !memcmp(buf + off - 5, "...\r\n", 5); + if (done_crlf || done_cr) { *r = buf; *size = off; return 0;