From 1c2cc5ab4c79c5fa04bb725c6329d6fc511a464b Mon Sep 17 00:00:00 2001 From: ryanzryu Date: Mon, 27 Nov 2023 19:59:24 +0800 Subject: [PATCH] [fix](BufferedReader) fix BufferedReader::_read_once call memcpy funcion using null pointor _buffer --- be/src/io/buffered_reader.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/be/src/io/buffered_reader.cpp b/be/src/io/buffered_reader.cpp index 021f0b9d236a62..a6181d453e3c4c 100644 --- a/be/src/io/buffered_reader.cpp +++ b/be/src/io/buffered_reader.cpp @@ -132,8 +132,15 @@ Status BufferedReader::_read_once(int64_t position, int64_t nbytes, int64_t* byt return Status::OK(); } } + int64_t len = std::min(_buffer_limit - position, nbytes); int64_t off = position - _buffer_offset; + if (_buffer == nullptr || out == nullptr || off + len > _buffer_size) { + return Status::BufferAllocFailed( + "BufferedReader copy argument invaild: _buffer:{},\ + out:{},_buffer_size:{},off:{},len:{}", + _buffer, out, _buffer_size, off, len); + } memcpy(out, _buffer + off, len); *bytes_read = len; _cur_offset = position + *bytes_read;