[haiku-commits] haiku: hrev46866 - src/kits/network/libnetapi

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 13 Feb 2014 09:38:08 +0100 (CET)

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);
                                                }
                                        }


Other related posts: