hrev46866 adds 1 changeset to branch 'master' old head: abcbb5d6179c4a63f74858a207db702315511efb new head: 3e358c1fcab3196ff9e1805a3fc484fd9884cac7 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=3e358c1+%5Eabcbb5d ---------------------------------------------------------------------------- 3e358c1: HttpRequest: use BStackOrHeapArray Sometimes we get enough bytes at once from the connection to trigger a stack overflow. Allocate memory on the heap instead. [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev46866 Commit: 3e358c1fcab3196ff9e1805a3fc484fd9884cac7 URL: http://cgit.haiku-os.org/haiku/commit/?id=3e358c1 Author: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> Date: Thu Feb 13 08:33:21 2014 UTC ---------------------------------------------------------------------------- 1 file changed, 3 insertions(+), 2 deletions(-) src/kits/network/libnetapi/HttpRequest.cpp | 5 +++-- ---------------------------------------------------------------------------- diff --git a/src/kits/network/libnetapi/HttpRequest.cpp b/src/kits/network/libnetapi/HttpRequest.cpp index 2212032..118def0 100644 --- a/src/kits/network/libnetapi/HttpRequest.cpp +++ b/src/kits/network/libnetapi/HttpRequest.cpp @@ -23,6 +23,7 @@ #include <File.h> #include <Socket.h> #include <SecureSocket.h> +#include <StackOrHeapArray.h> #include <ZlibDecompressor.h> @@ -699,7 +700,7 @@ BHttpRequest::_MakeRequest() decompressor.DecompressNext(inputTempBuffer, bytesRead); ssize_t size = decompressorStorage.Size(); - char buffer[size]; + BStackOrHeapArray<char, 4096> buffer(size); size = decompressorStorage.Read(buffer, size); if (size > 0) { fListener->DataReceived(this, buffer, size); @@ -720,7 +721,7 @@ BHttpRequest::_MakeRequest() ssize_t size = decompressorStorage.Size(); char buffer[size]; size = decompressorStorage.Read(buffer, size); - if (size > 0) { + if (fListener != NULL && size > 0) { fListener->DataReceived(this, buffer, size); } }