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

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 28 Jul 2017 22:01:14 +0200 (CEST)

hrev51314 adds 1 changeset to branch 'master'
old head: b6b792f8cbac46da7088d9d27389f841f205ee61
new head: f40841ac86be8e7e7c2574d28998aa2ac3e561c5
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=f40841ac86be+%5Eb6b792f8cbac

----------------------------------------------------------------------------

f40841ac86be: BNetworkRequest: fix _GetLine on empty lines.
  
  On an empty line terminated by \n, we would access the temporary buffer
  (stack allocated) with an index of (uint32)-1. On 32bit machine this
  would just read the byte before the array on the stack, but on 64bit it
  would crash.
  
  Check that the length is at least 1 before trying to access a character
  in the array.
  
  Fixes #13625.
  
  Thanks to accessays for proofreading the code:

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev51314
Commit:      f40841ac86be8e7e7c2574d28998aa2ac3e561c5
URL:         http://cgit.haiku-os.org/haiku/commit/?id=f40841ac86be
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Fri Jul 28 19:59:19 2017 UTC

Ticket:      https://dev.haiku-os.org/ticket/13625

----------------------------------------------------------------------------

1 file changed, 1 insertion(+), 1 deletion(-)
src/kits/network/libnetapi/NetworkRequest.cpp | 2 +-

----------------------------------------------------------------------------

diff --git a/src/kits/network/libnetapi/NetworkRequest.cpp 
b/src/kits/network/libnetapi/NetworkRequest.cpp
index 015b2ac..8007558 100644
--- a/src/kits/network/libnetapi/NetworkRequest.cpp
+++ b/src/kits/network/libnetapi/NetworkRequest.cpp
@@ -107,7 +107,7 @@ BNetworkRequest::_GetLine(BString& destString)
        fInputBuffer.RemoveData(temporaryBuffer, characterIndex + 1);
 
        // Strip end-of-line character(s)
-       if (temporaryBuffer[characterIndex - 1] == '\r')
+       if (characterIndex != 0 && temporaryBuffer[characterIndex - 1] == '\r')
                destString.SetTo(temporaryBuffer, characterIndex - 1);
        else
                destString.SetTo(temporaryBuffer, characterIndex);


Other related posts:

  • » [haiku-commits] haiku: hrev51314 - src/kits/network/libnetapi - pulkomandy