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]

Reply via email to