From 89a731d7541a0499af7b7f6f7440f051c9f98a87 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Fri, 23 Mar 2018 10:42:49 +0100 Subject: [PATCH] dnsdist: Get rid of a VLA in TCP workers --- pdns/dnsdist-tcp.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pdns/dnsdist-tcp.cc b/pdns/dnsdist-tcp.cc index b3b74864eb..124745f54c 100644 --- a/pdns/dnsdist-tcp.cc +++ b/pdns/dnsdist-tcp.cc @@ -271,6 +271,7 @@ void* tcpClientThread(int pipefd) size_t queriesCount = 0; time_t connectionStartTime = time(NULL); std::vector queryBuffer; + std::vector answerBuffer; if (getsockname(ci.fd, (sockaddr*)&dest, &len)) { dest = ci.cs->local; @@ -559,9 +560,9 @@ void* tcpClientThread(int pipefd) } #endif responseSize += addRoom; - char answerbuffer[responseSize]; - readn2WithTimeout(dsock, answerbuffer, rlen, ds->tcpRecvTimeout); - char* response = answerbuffer; + answerBuffer.resize(responseSize); + char* response = &answerBuffer.at(0); + readn2WithTimeout(dsock, response, rlen, ds->tcpRecvTimeout); uint16_t responseLen = rlen; if (outstanding) { /* might be false for {A,I}XFR */ -- 2.47.2