airborne12 opened a new pull request, #61150: URL: https://github.com/apache/doris/pull/61150
## Proposed changes Cherry-pick of #61120 to branch-4.0. On ARM64, std::string is 24 bytes but StringRef is 16 bytes. Several places pass StringRef* through void* and then reinterpret_cast to std::string*, reading 8 bytes beyond the buffer. 1. **function_multi_match.cpp**: Convert StringRef to std::string before passing as query_value. Downstream FullTextIndexReader::query() reinterpret_casts query_value as std::string* (24 bytes on ARM64), but StringRef is only 16 bytes, causing stack-buffer-overflow. 2. **in_list_predicate.h**: Fix 3 sites where HybridSet iterator returns StringRef* via get_value(), but code treats it as std::string*. Add `if constexpr (is_string_type(Type))` guard to construct std::string from StringRef data/size before use. Cherry-pick applied cleanly with no conflicts. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
