From 7e54cb8132d8a3e9b278b0c9b5d18fe0e51e1db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 9 Nov 2018 15:42:20 +0200 Subject: [PATCH] Fix crash in cat The router used the wrong capabilities and results weren't delivered as complete and contiguous packets. --- server/modules/routing/cat/cat.cc | 2 +- server/modules/routing/cat/catsession.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/server/modules/routing/cat/cat.cc b/server/modules/routing/cat/cat.cc index 97d82c843..874df9e62 100644 --- a/server/modules/routing/cat/cat.cc +++ b/server/modules/routing/cat/cat.cc @@ -55,7 +55,7 @@ json_t* Cat::diagnostics_json() const return NULL; } -const uint64_t caps = RCAP_TYPE_STMT_OUTPUT | RCAP_TYPE_STMT_INPUT; +const uint64_t caps = RCAP_TYPE_PACKET_OUTPUT | RCAP_TYPE_CONTIGUOUS_OUTPUT | RCAP_TYPE_STMT_INPUT; uint64_t Cat::getCapabilities() { diff --git a/server/modules/routing/cat/catsession.cc b/server/modules/routing/cat/catsession.cc index eb6c97185..06cc820e1 100644 --- a/server/modules/routing/cat/catsession.cc +++ b/server/modules/routing/cat/catsession.cc @@ -104,6 +104,7 @@ void CatSession::clientReply(GWBUF* pPacket, DCB* pDcb) if (send) { // Increment the packet sequence number and send it to the client + mxb_assert(modutil_count_packets(pPacket) > 0); GWBUF_DATA(pPacket)[3] = m_packet_num++; MXS_SESSION_ROUTE_REPLY(pDcb->session, pPacket); }