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