diff options
| author | Bryan O'Sullivan <bos@lindenlab.com> | 2009-11-03 13:39:02 -0800 |
|---|---|---|
| committer | Bryan O'Sullivan <bos@lindenlab.com> | 2009-11-03 13:39:02 -0800 |
| commit | 28ed8f84d86403cf90b7963b147d2ac5c6cf37c7 (patch) | |
| tree | cebb2895642b96aa64e8cf8c2eb402e8423165d6 /indra/llmessage/lliohttpserver.cpp | |
| parent | 9c3595465972ba4be916e871f6b0a62cc0c13d4a (diff) | |
| parent | 63b9bd43ff41da01d549f630bd838caff0dffd97 (diff) | |
Merge with SVN render-pipeline-8 branch
Diffstat (limited to 'indra/llmessage/lliohttpserver.cpp')
| -rw-r--r-- | indra/llmessage/lliohttpserver.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/indra/llmessage/lliohttpserver.cpp b/indra/llmessage/lliohttpserver.cpp index a00dbd1809..97134bd336 100644 --- a/indra/llmessage/lliohttpserver.cpp +++ b/indra/llmessage/lliohttpserver.cpp @@ -521,7 +521,7 @@ protected: * seek orfor string assignment. * @returns Returns true if a line was found. */ - bool readLine( + bool readHeaderLine( const LLChannelDescriptors& channels, buffer_ptr_t buffer, U8* dest, @@ -592,7 +592,7 @@ LLHTTPResponder::~LLHTTPResponder() //lldebugs << "destroying LLHTTPResponder" << llendl; } -bool LLHTTPResponder::readLine( +bool LLHTTPResponder::readHeaderLine( const LLChannelDescriptors& channels, buffer_ptr_t buffer, U8* dest, @@ -670,7 +670,7 @@ LLIOPipe::EStatus LLHTTPResponder::process_impl( #endif PUMP_DEBUG; - if(readLine(channels, buffer, (U8*)buf, len)) + if(readHeaderLine(channels, buffer, (U8*)buf, len)) { bool read_next_line = false; bool parse_all = true; @@ -734,7 +734,13 @@ LLIOPipe::EStatus LLHTTPResponder::process_impl( if(read_next_line) { len = HEADER_BUFFER_SIZE; - readLine(channels, buffer, (U8*)buf, len); + if (!readHeaderLine(channels, buffer, (U8*)buf, len)) + { + // Failed to read the header line, probably too long. + // readHeaderLine already marked the channel/buffer as bad. + keep_parsing = false; + break; + } } if(0 == len) { |
