From d8dd8dea5465e209083e423cbec8b7df1ad5cf59 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Thu, 21 May 2015 22:22:52 -0400 Subject: [PATCH] Fixed some off-by-one errors --- Jupiter/CString_Imp.h | 4 ++-- Release/Jupiter.lib | Bin 266046 -> 266046 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Jupiter/CString_Imp.h b/Jupiter/CString_Imp.h index f3d51a1..1509558 100644 --- a/Jupiter/CString_Imp.h +++ b/Jupiter/CString_Imp.h @@ -146,7 +146,7 @@ template<> size_t inline Jupiter::CString_Type::vformat(const char *format if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSizeNoCopy(minLen); Jupiter::String_Type::length = minLen; - vsnprintf(Jupiter::String_Type::str, Jupiter::String_Type::length, format, args); + vsnprintf(Jupiter::String_Type::str, Jupiter::String_Type::length + 1, format, args); Jupiter::String_Type::str[Jupiter::String_Type::length] = 0; return Jupiter::String_Type::length; } @@ -183,7 +183,7 @@ template<> size_t inline Jupiter::CString_Type::avformat(const char *forma if (minLen < 0) return 0; // We simply can not work with this. this->setBufferSize(Jupiter::String_Type::length + minLen); - minLen = vsnprintf(Jupiter::String_Type::str + Jupiter::String_Type::length, minLen, format, args); + minLen = vsnprintf(Jupiter::String_Type::str + Jupiter::String_Type::length, minLen + 1, format, args); if (minLen <= 0) return 0; Jupiter::String_Type::length += minLen; Jupiter::String_Type::str[Jupiter::String_Type::length] = 0; diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index fe0ce603f7576660a0722e963b630d555c8d2e0c..452025bb1a9e06740aa94fa313f9bf61b2549312 100644 GIT binary patch delta 19304 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 delta 19304 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