From 2b103196d6fb69336a14d9167dbda701ab135183 Mon Sep 17 00:00:00 2001 From: schmirl Date: Mon, 7 May 2007 12:25:11 +0000 Subject: [PATCH] Check vasprintf return code (thanks to rofafor) --- server/connection.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/connection.c b/server/connection.c index c5c076a..629ed1d 100644 --- a/server/connection.c +++ b/server/connection.c @@ -1,5 +1,5 @@ /* - * $Id: connection.c,v 1.9 2007/05/07 11:43:23 schmirl Exp $ + * $Id: connection.c,v 1.10 2007/05/07 12:25:11 schmirl Exp $ */ #include "server/connection.h" @@ -101,6 +101,12 @@ bool cServerConnection::Respond(const char *Message, bool Last, ...) length = vasprintf(&buffer, Message, ap); va_end(ap); + if (length < 0) { + esyslog("ERROR: streamdev: buffer allocation failed (%s) for %s:%d", + m_Protocol, RemoteIp().c_str(), RemotePort()); + return false; + } + if (m_WriteBytes + length + 2 > sizeof(m_WriteBuffer)) { esyslog("ERROR: streamdev: output buffer overflow (%s) for %s:%d", m_Protocol, RemoteIp().c_str(), RemotePort());