From 9e6161305da8ca2a241b94edf51bc1e74313338c Mon Sep 17 00:00:00 2001 From: tycho Date: Fri, 18 Dec 2015 12:08:55 +0100 Subject: Fixed String Parsing crash bug Check string length against actual remaining data, not an abitary constant --- src/WorldStorage/FastNBT.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/WorldStorage/FastNBT.cpp b/src/WorldStorage/FastNBT.cpp index 35c3ace0b..70570f7d0 100644 --- a/src/WorldStorage/FastNBT.cpp +++ b/src/WorldStorage/FastNBT.cpp @@ -91,11 +91,7 @@ bool cParsedNBT::ReadString(size_t & a_StringStart, size_t & a_StringLen) NEEDBYTES(2); a_StringStart = m_Pos + 2; a_StringLen = static_cast(GetBEShort(m_Data + m_Pos)); - if (a_StringLen > 0xffff) - { - // Suspicious string length - return false; - } + NEEDBYTES(a_StringLen); m_Pos += 2 + a_StringLen; return true; } -- cgit v1.2.3