From 7b30eedec0b91cb33e4c393a299e4ab8e3cfa0ef Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Fri, 21 Oct 2022 13:24:51 +0800 Subject: [PATCH 1/2] avoid invalid read/write --- source/libs/transport/src/thttp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/libs/transport/src/thttp.c b/source/libs/transport/src/thttp.c index 2399891f6d..189af06d38 100644 --- a/source/libs/transport/src/thttp.c +++ b/source/libs/transport/src/thttp.c @@ -234,7 +234,15 @@ int32_t taosSendHttpReport(const char* server, uint16_t port, char* pCont, int32 cli->addr = tstrdup(server); cli->port = port; - uv_loop_t* loop = uv_default_loop(); + uv_loop_t* loop = taosMemoryMalloc(sizeof(uv_loop_t)); + int err = uv_loop_init(loop); + if (err != 0) { + uError("http-report failed to init uv_loop, reason: %s", uv_strerror(err)); + taosMemoryFree(loop); + terrno = TAOS_SYSTEM_ERROR(err); + destroyHttpClient(cli); + return -1; + } uv_tcp_init(loop, &cli->tcp); // set up timeout to avoid stuck; int32_t fd = taosCreateSocketWithTimeout(5); From fd06e0717d1baabdb4c79e1834a54739909c2be8 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Fri, 21 Oct 2022 13:28:13 +0800 Subject: [PATCH 2/2] avoid invalid read/write --- source/libs/transport/src/thttp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/libs/transport/src/thttp.c b/source/libs/transport/src/thttp.c index 189af06d38..a583632765 100644 --- a/source/libs/transport/src/thttp.c +++ b/source/libs/transport/src/thttp.c @@ -241,7 +241,7 @@ int32_t taosSendHttpReport(const char* server, uint16_t port, char* pCont, int32 taosMemoryFree(loop); terrno = TAOS_SYSTEM_ERROR(err); destroyHttpClient(cli); - return -1; + return terrno; } uv_tcp_init(loop, &cli->tcp); // set up timeout to avoid stuck; @@ -266,5 +266,6 @@ int32_t taosSendHttpReport(const char* server, uint16_t port, char* pCont, int32 uv_run(loop, UV_RUN_DEFAULT); uv_loop_close(loop); + taosMemoryFree(loop); return terrno; }