소스 검색

Fix segmentaion fault

Tatsuhiro Tsujikawa 12 년 전
부모
커밋
f2d85c38cc
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      src/HttpConnection.cc

+ 5 - 3
src/HttpConnection.cc

@@ -63,8 +63,8 @@ namespace aria2 {
 
 HttpRequestEntry::HttpRequestEntry
 (const std::shared_ptr<HttpRequest>& httpRequest)
-  : httpRequest_(httpRequest),
-    proc_(new HttpHeaderProcessor(HttpHeaderProcessor::CLIENT_PARSER))
+  : httpRequest_{httpRequest},
+    proc_{make_unique<HttpHeaderProcessor>(HttpHeaderProcessor::CLIENT_PARSER)}
 {}
 
 HttpRequestEntry::~HttpRequestEntry() {}
@@ -152,9 +152,11 @@ std::shared_ptr<HttpResponse> 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;
 }