From 2f7c15f38ea45be6d62e39a30c1302d4efa13949 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 06:35:40 +0800 Subject: [PATCH] branch-2.1: [Bug](function) fix bitmap_from_base64 function cause heap-buffer-overflow error #53018 (#53044) Cherry-picked from #53018 Co-authored-by: zhangstar333 --- be/src/vec/functions/function_bitmap.cpp | 4 ++-- .../bitmap_functions/test_bitmap_function.groovy | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/be/src/vec/functions/function_bitmap.cpp b/be/src/vec/functions/function_bitmap.cpp index fb0e0471ca..7f8ca009f9 100644 --- a/be/src/vec/functions/function_bitmap.cpp +++ b/be/src/vec/functions/function_bitmap.cpp @@ -289,8 +289,8 @@ struct BitmapFromBase64 { } else { BitmapValue bitmap_val; if (!bitmap_val.deserialize(decode_buff.data())) { - return Status::RuntimeError( - fmt::format("bitmap_from_base64 decode failed: base64: {}", src_str)); + return Status::RuntimeError("bitmap_from_base64 decode failed: base64: {}", + std::string(src_str, src_size)); } res.emplace_back(std::move(bitmap_val)); } diff --git a/regression-test/suites/query_p0/sql_functions/bitmap_functions/test_bitmap_function.groovy b/regression-test/suites/query_p0/sql_functions/bitmap_functions/test_bitmap_function.groovy index 42ab4be115..856622861d 100644 --- a/regression-test/suites/query_p0/sql_functions/bitmap_functions/test_bitmap_function.groovy +++ b/regression-test/suites/query_p0/sql_functions/bitmap_functions/test_bitmap_function.groovy @@ -928,4 +928,9 @@ suite("test_bitmap_function") { // BITMAP_FROM_ARRAY sql """ set experimental_enable_nereids_planner=true; """ qt_sql """ select bitmap_to_string(BITMAP_FROM_ARRAY([]));""" + + test { + sql """ SELECT bitmap_from_base64('CQoL') AS result; """ + exception "bitmap_from_base64 decode failed" + } }