This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 78f2e4b7242 [fix](be) core dump because of invalid bitmap data (#53088) 78f2e4b7242 is described below commit 78f2e4b7242c68e28cbdc03691e8aa5110fac7a0 Author: JinYang <130516674+goh...@users.noreply.github.com> AuthorDate: Sat Jul 26 23:38:11 2025 +0800 [fix](be) core dump because of invalid bitmap data (#53088) --- be/src/util/bitmap_value.h | 7 ++++++- be/test/util/bitmap_value_test.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/be/src/util/bitmap_value.h b/be/src/util/bitmap_value.h index 903317ebe65..e3a0ae17755 100644 --- a/be/src/util/bitmap_value.h +++ b/be/src/util/bitmap_value.h @@ -1959,7 +1959,12 @@ public: case BitmapTypeCode::BITMAP64_V2: _type = BITMAP; _is_shared = false; - _bitmap = std::make_shared<detail::Roaring64Map>(detail::Roaring64Map::read(src)); + try { + _bitmap = std::make_shared<detail::Roaring64Map>(detail::Roaring64Map::read(src)); + } catch (const std::runtime_error& e) { + LOG(ERROR) << "Decode roaring bitmap failed, " << e.what(); + return false; + } break; case BitmapTypeCode::SET: { _type = SET; diff --git a/be/test/util/bitmap_value_test.cpp b/be/test/util/bitmap_value_test.cpp index 2c08161450e..74980ee9091 100644 --- a/be/test/util/bitmap_value_test.cpp +++ b/be/test/util/bitmap_value_test.cpp @@ -1188,4 +1188,10 @@ TEST(BitmapValueTest, bitmap_value_iterator_test) { } } } + +TEST(BitmapValueTest, invalid_data) { + BitmapValue bitmap; + char data[] = {0x02, static_cast<char>(0xff), 0x03}; + EXPECT_FALSE(bitmap.deserialize(data)); +} } // namespace doris --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org