From 1342b296a5df1aead32a15f04b763ff976b1aabd Mon Sep 17 00:00:00 2001 From: jaylin Date: Mon, 12 Aug 2024 15:21:13 +0800 Subject: [PATCH] * FIX [broker_tcp] fix https://github.com/nanomq/nanomq/issues/1861 two bugs hidden under it. uncared proto_Data in retain msg another one is still suspicous, remoing pipe from a lock protected sendq caused SEGV. Signed-off-by: jaylin --- src/sp/transport/mqtt/broker_tcp.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/sp/transport/mqtt/broker_tcp.c b/src/sp/transport/mqtt/broker_tcp.c index 31645d1b0..9190a5f3c 100644 --- a/src/sp/transport/mqtt/broker_tcp.c +++ b/src/sp/transport/mqtt/broker_tcp.c @@ -215,7 +215,6 @@ tcptran_pipe_fini(void *arg) nni_lmq_fini(&p->rslmq); nni_mtx_fini(&p->mtx); NNI_FREE_STRUCT(p); - log_trace(" ************ tcptran_pipe_finit [%p] ************ ", p); } static void @@ -1205,15 +1204,6 @@ nmq_pipe_send_start_v4(tcptran_pipe *p, nni_msg *msg, nni_aio *aio) niov++; } } - if (niov == 0) { - // No content to send - nni_msg_free(msg); - nni_aio_set_prov_data(txaio, NULL); - nni_list_remove(&p->sendq, aio); - nni_aio_set_msg(aio, NULL); - nni_aio_finish(aio, 0, 0); - return; - } send: nni_aio_set_iov(txaio, niov, iov); nng_stream_send(p->conn, txaio); @@ -1471,8 +1461,7 @@ nmq_pipe_send_start_v5(tcptran_pipe *p, nni_msg *msg, nni_aio *aio) } else { // what should broker does when exceed // max_recv? msg lost, make it look like a - // normal send. qos msg will be resend - // afterwards + // normal send. qos msg will be resend afterwards nni_msg_free(msg); nni_aio_set_prov_data(txaio, NULL); nni_list_remove(&p->sendq, aio); @@ -1481,15 +1470,6 @@ nmq_pipe_send_start_v5(tcptran_pipe *p, nni_msg *msg, nni_aio *aio) return; } } - if (niov == 0) { - // No content to send - nni_msg_free(msg); - nni_aio_set_prov_data(txaio, NULL); - nni_list_remove(&p->sendq, aio); - nni_aio_set_msg(aio, NULL); - nni_aio_finish(aio, 0, 0); - return; - } send: nni_aio_set_iov(txaio, niov, iov); nng_stream_send(p->conn, txaio);