From: Remi Gacogne Date: Fri, 23 Mar 2018 09:42:49 +0000 (+0100) Subject: dnsdist: Get rid of a VLA in TCP workers X-Git-Tag: dnsdist-1.3.0~31^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89a731d7541a0499af7b7f6f7440f051c9f98a87;p=thirdparty%2Fpdns.git dnsdist: Get rid of a VLA in TCP workers --- 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 */