From 919de857d2dcfcd861f6fa5704099baa1986c6ea Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Fri, 20 Sep 2024 15:37:15 +0800 Subject: [PATCH] fix invalid read --- source/libs/transport/src/transCli.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 96aeb20972..304729ee80 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -105,6 +105,7 @@ typedef struct SCliConn { uv_buf_t* buf; int32_t bufSize; + int32_t readerStart; queue wq; // uv_write_t queue } SCliConn; @@ -1178,8 +1179,12 @@ static void cliBatchSendCb(uv_write_t* req, int status) { } cliConnMayUpdateTimer(conn, READ_TIMEOUT); - - uv_read_start((uv_stream_t*)conn->stream, cliAllocRecvBufferCb, cliRecvCb); + // if (!uv_is_readable(conn->stream)) { + if (conn->readerStart == 0) { + uv_read_start((uv_stream_t*)conn->stream, cliAllocRecvBufferCb, cliRecvCb); + conn->readerStart = 1; + } + //} if (!cliMayRecycleConn(conn)) { (void)cliBatchSend(conn);