Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cpp/src/compress/lz4_compressor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,16 @@ int LZ4Compressor::compress(char* uncompressed_buf,
uncompressed_buf_len, max_dst_size);

if (compressed_data_size <= 0) {
mem_free(compressed_buf_);
compressed_buf_ = nullptr;
ret = E_COMPRESS_ERR;
} else {
char* compressed_data = (char*)mem_realloc(
compressed_buf_, (size_t)compressed_data_size);

if (compressed_data == nullptr) {
mem_free(compressed_buf_);
compressed_buf_ = nullptr;
ret = E_OOM;
} else {
compressed_buf_ = compressed_data;
Expand Down
6 changes: 6 additions & 0 deletions cpp/src/cwrapper/tsfile_cwrapper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -555,6 +555,9 @@ char* tsfile_result_set_get_value_by_name_string(ResultSet result_set,
auto* r = static_cast<storage::ResultSet*>(result_set);
std::string column_name_(column_name);
common::String* ret = r->get_value<common::String*>(column_name_);
if (ret == nullptr) {
return nullptr;
}
// Caller should free return's char* 's space.
char* dup = (char*)malloc(ret->len_ + 1);
if (dup) {
Expand All @@ -581,6 +584,9 @@ char* tsfile_result_set_get_value_by_index_string(ResultSet result_set,
uint32_t column_index) {
auto* r = static_cast<storage::ResultSet*>(result_set);
common::String* ret = r->get_value<common::String*>(column_index);
if (ret == nullptr) {
return nullptr;
}
// Caller should free return's char* 's space.
char* dup = (char*)malloc(ret->len_ + 1);
if (dup) {
Expand Down
7 changes: 6 additions & 1 deletion cpp/src/reader/chunk_reader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ void ChunkReader::reset() {
char* file_data_buf = in_stream_.get_wrapped_buf();
if (file_data_buf != nullptr) {
mem_free(file_data_buf);
in_stream_.clear_wrapped_buf();
}
in_stream_.reset();
file_data_buf_size_ = 0;
Expand Down Expand Up @@ -113,7 +114,11 @@ int ChunkReader::load_by_meta(ChunkMeta* meta) {
}
ret = read_file_->read(chunk_meta_->offset_of_chunk_header_, file_data_buf,
file_data_buf_size_, ret_read_len);
if (IS_SUCC(ret) && ret_read_len < ChunkHeader::MIN_SERIALIZED_SIZE) {
if (!IS_SUCC(ret)) {
mem_free(file_data_buf);
return ret;
}
if (ret_read_len < ChunkHeader::MIN_SERIALIZED_SIZE) {
ret = E_TSFILE_CORRUPTED;
LOGE("file corrupted, ret=" << ret << ", offset="
<< chunk_meta_->offset_of_chunk_header_
Expand Down
Loading