summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-07-20 09:15:01 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-07-20 09:15:01 +0000
commitccfcdda27482fe2ac99d0da936ef1a1374223624 (patch)
treebb5e7fb0f8178b751b3a22192bd1d82e04541104
parentca781714c1651a9e7042eb930c6b117449f8e1fc (diff)
Fix potential off-by-one on large reads (thanks psychon)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10048 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/inspircd.h3
-rw-r--r--src/configreader.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index fc0f2a04e..50dc5c73b 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -349,7 +349,8 @@ class CoreExport InspIRCd : public classbase
*/
time_t OLDTIME;
- /** A 64k buffer used to read client lines into
+ /** A 64k buffer used to read socket data into
+ * NOTE: update ValidateNetBufferSize if you change this
*/
char ReadBuffer[65535];
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 117546f09..5ee89af23 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -375,7 +375,8 @@ bool ValidateServerName(ServerConfig* conf, const char*, const char*, ValueItem
bool ValidateNetBufferSize(ServerConfig* conf, const char*, const char*, ValueItem &data)
{
- if ((!data.GetInteger()) || (data.GetInteger() > 65535) || (data.GetInteger() < 1024))
+ // 65534 not 65535 because of null terminator
+ if ((!data.GetInteger()) || (data.GetInteger() > 65534) || (data.GetInteger() < 1024))
{
conf->GetInstance()->Logs->Log("CONFIG",DEFAULT,"No NetBufferSize specified or size out of range, setting to default of 10240.");
data.Set(10240);