From f2d85c38cc6e7c514510e117a6711913f08bf64d Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 3 Jul 2013 00:02:27 +0900 Subject: [PATCH] Fix segmentaion fault --- src/HttpConnection.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc index c008d5a9..9f49c1d8 100644 --- a/src/HttpConnection.cc +++ b/src/HttpConnection.cc @@ -63,8 +63,8 @@ namespace aria2 { HttpRequestEntry::HttpRequestEntry (const std::shared_ptr& httpRequest) - : httpRequest_(httpRequest), - proc_(new HttpHeaderProcessor(HttpHeaderProcessor::CLIENT_PARSER)) + : httpRequest_{httpRequest}, + proc_{make_unique(HttpHeaderProcessor::CLIENT_PARSER)} {} HttpRequestEntry::~HttpRequestEntry() {} @@ -152,9 +152,11 @@ std::shared_ptr HttpConnection::receiveResponse() httpResponse->setHttpHeader(proc->getResult()); httpResponse->setHttpRequest(outstandingHttpRequests_.front()-> getHttpRequest()); + socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed()); outstandingHttpRequests_.pop_front(); + } else { + socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed()); } - socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed()); return httpResponse; }