From 7503c642379cec7a2e14fe6a516d69a1f4d6d94a Mon Sep 17 00:00:00 2001 From: oy Date: Thu, 12 Aug 2010 15:22:07 +0200 Subject: made unpacking of net strings more strict - prevents possible malformed output --- src/engine/shared/packer.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/engine/shared/packer.cpp') diff --git a/src/engine/shared/packer.cpp b/src/engine/shared/packer.cpp index 3e1d8dd6..53a74754 100644 --- a/src/engine/shared/packer.cpp +++ b/src/engine/shared/packer.cpp @@ -114,7 +114,7 @@ int CUnpacker::GetInt() return i; } -const char *CUnpacker::GetString() +const char *CUnpacker::GetString(int SanitizeType) { if(m_Error || m_pCurrent >= m_pEnd) return ""; @@ -132,8 +132,11 @@ const char *CUnpacker::GetString() m_pCurrent++; // sanitize all strings - str_sanitize(pPtr); - return pPtr; + if(SanitizeType&SANITIZE) + str_sanitize(pPtr); + else if(SanitizeType&SANITIZE_CC) + str_sanitize_cc(pPtr); + return SanitizeType&SKIP_START_WHITESPACES ? str_skip_whitespaces(pPtr) : pPtr; } const unsigned char *CUnpacker::GetRaw(int Size) -- cgit 1.4.1