From 088a96ff15123ab361e7ef10ec9870ce63ee42db Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 19 May 2020 15:11:21 +0300 Subject: [PATCH] Add some checks. GitOrigin-RevId: 6c24e7d3d48ed823a45d6b106855f3a0f55a0db5 --- tdnet/td/net/HttpReader.cpp | 1 + tdnet/td/net/SslStream.cpp | 2 ++ tdutils/td/utils/Parser.h | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tdnet/td/net/HttpReader.cpp b/tdnet/td/net/HttpReader.cpp index 83d806cc..a53f5a85 100644 --- a/tdnet/td/net/HttpReader.cpp +++ b/tdnet/td/net/HttpReader.cpp @@ -148,6 +148,7 @@ Result HttpReader::read_next(HttpQuery *query) { end_p--; } + CHECK(p != nullptr); Slice boundary(p, static_cast(end_p - p)); if (boundary.empty() || boundary.size() > MAX_BOUNDARY_LENGTH) { return Status::Error(400, "Bad Request: boundary too big or empty"); diff --git a/tdnet/td/net/SslStream.cpp b/tdnet/td/net/SslStream.cpp index f8cadb6c..dc4c7e9e 100644 --- a/tdnet/td/net/SslStream.cpp +++ b/tdnet/td/net/SslStream.cpp @@ -515,6 +515,7 @@ int strm_read(BIO *b, char *buf, int len) { auto *stream = static_cast(BIO_get_data(b)); CHECK(stream != nullptr); BIO_clear_retry_flags(b); + CHECK(buf != nullptr); int res = narrow_cast(stream->flow_read(MutableSlice(buf, len))); if (res == 0) { BIO_set_retry_read(b); @@ -526,6 +527,7 @@ int strm_write(BIO *b, const char *buf, int len) { auto *stream = static_cast(BIO_get_data(b)); CHECK(stream != nullptr); BIO_clear_retry_flags(b); + CHECK(buf != nullptr); return narrow_cast(stream->flow_write(Slice(buf, len))); } } // namespace diff --git a/tdutils/td/utils/Parser.h b/tdutils/td/utils/Parser.h index 245f4504..015bede5 100644 --- a/tdutils/td/utils/Parser.h +++ b/tdutils/td/utils/Parser.h @@ -45,7 +45,7 @@ class ParserImpl { return ptr_ == end_; } void clear() { - ptr_ = nullptr; + ptr_ = SliceT().begin(); end_ = ptr_; status_ = Status::OK(); }