From 17fb92654ed9a12fe6c6298369e8788d97949f6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Tue, 3 Dec 2019 16:45:19 -0500
Subject: [PATCH] http: check parser before use

---
 src/http.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/http.cpp b/src/http.cpp
index 0017b0d0..abb9611b 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -874,7 +874,7 @@ Request::terminate(const asio::error_code& ec)
         logger_->e("[http:request:%i] end with error: %s", id_, ec.message().c_str());
 
     // set response outcome, ignore end of file and abort
-    if (!ec or ec == asio::error::eof)
+    if ((!ec or ec == asio::error::eof) and parser_)
         response_.status_code = parser_->status_code;
     else
         response_.status_code = 0;
@@ -882,7 +882,7 @@ Request::terminate(const asio::error_code& ec)
     response_.aborted = ec == asio::error::operation_aborted;
 
     if (logger_)
-        logger_->d("[http:request:%i] done with status code %u", id_, parser_->status_code);
+        logger_->d("[http:request:%i] done with status code %u", id_, response_.status_code);
     if (connection_type_ != restinio::http_connection_header_t::keep_alive)
         if (auto c = conn_)
             c->close();
-- 
GitLab