diff --git a/src/protocol/HttpMessage.h b/src/protocol/HttpMessage.h index 0e0c2be7..13caf0c6 100644 --- a/src/protocol/HttpMessage.h +++ b/src/protocol/HttpMessage.h @@ -193,8 +193,11 @@ public: virtual ~HttpMessage() { this->clear_output_body(); - http_parser_deinit(this->parser); - delete this->parser; + if (this->parser) + { + http_parser_deinit(this->parser); + delete this->parser; + } } /* for std::move() */ diff --git a/src/protocol/RedisMessage.h b/src/protocol/RedisMessage.h index 41235262..f16b80ca 100644 --- a/src/protocol/RedisMessage.h +++ b/src/protocol/RedisMessage.h @@ -321,9 +321,12 @@ inline RedisMessage::RedisMessage(): inline RedisMessage::~RedisMessage() { - redis_parser_deinit(parser_); - delete parser_; - delete stream_; + if (parser_) + { + redis_parser_deinit(parser_); + delete parser_; + delete stream_; + } } inline bool RedisMessage::parse_success() const { return parser_->parse_succ; }