From: bert hubert Date: Sat, 10 Jan 2015 22:06:38 +0000 (+0100) Subject: allocate TCP buffer dynamically, decreasing our stack usage X-Git-Tag: rec-3.7.0-rc1~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2b4ccc0d125a30a1970f555f572bf74de27a3d5;p=thirdparty%2Fpdns.git allocate TCP buffer dynamically, decreasing our stack usage --- diff --git a/pdns/tcpreceiver.cc b/pdns/tcpreceiver.cc index f90bf906e7..6356d343b8 100644 --- a/pdns/tcpreceiver.cc +++ b/pdns/tcpreceiver.cc @@ -253,7 +253,8 @@ void *TCPNameserver::doConnection(void *data) pthread_detach(pthread_self()); Utility::setNonBlocking(fd); try { - char mesg[65535]; + int mesgsize=65535; + scoped_array mesg(new char[mesgsize]); DLOG(L<<"TCP Connection accepted on fd "<sizeof(mesg)) { + if(pktlen > mesgsize) { L<(new DNSPacket); packet->setRemote(&remote); packet->d_tcp=true; packet->setSocket(fd); - if(packet->parse(mesg, pktlen)<0) + if(packet->parse(mesg.get(), pktlen)<0) break; if(packet->qtype.getCode()==QType::AXFR) {