From e841fdffba694178d7bbf1f9853de5b4a1d11cc7 Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 12 Mar 2018 15:11:34 +0000 Subject: [PATCH] Core: StringStream ExcLimit exception fixed for big chunks of data git-svn-id: svn://ultimatepp.org/upp/trunk@11833 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Stream.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uppsrc/Core/Stream.cpp b/uppsrc/Core/Stream.cpp index 457389f4e..58477c532 100644 --- a/uppsrc/Core/Stream.cpp +++ b/uppsrc/Core/Stream.cpp @@ -884,10 +884,10 @@ void StringStream::_Put(const void *d, dword sz) SetWriteMode(); if(ptr + sz >= wrlim) { size_t p = ptr - buffer; + if(limit != INT_MAX && p + sz > (size_t)limit) + throw LimitExc(); if(p + sz >= INT_MAX) Panic("2GB StringStream limit exceeded"); - if(p + sz > (size_t)limit) - throw LimitExc(); int len = (int32)max((int64)128, min((int64)limit, max(2 * GetSize(), GetSize() + sz))); wdata.SetLength(len); SetWriteBuffer();