From 3e358c1fcab3196ff9e1805a3fc484fd9884cac7 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 13 Feb 2014 09:33:21 +0100 Subject: [PATCH] HttpRequest: use BStackOrHeapArray Sometimes we get enough bytes at once from the connection to trigger a stack overflow. Allocate memory on the heap instead. --- src/kits/network/libnetapi/HttpRequest.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kits/network/libnetapi/HttpRequest.cpp b/src/kits/network/libnetapi/HttpRequest.cpp index 2212032645..118def00c5 100644 --- a/src/kits/network/libnetapi/HttpRequest.cpp +++ b/src/kits/network/libnetapi/HttpRequest.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -699,7 +700,7 @@ BHttpRequest::_MakeRequest() decompressor.DecompressNext(inputTempBuffer, bytesRead); ssize_t size = decompressorStorage.Size(); - char buffer[size]; + BStackOrHeapArray 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); } }