jimingham wrote:

Maybe I'm missing something.  In the host case, m_address is set to invalid, 
but m_value has the address in it and is a host address, so then we get to:

  // m_address could be invalid but we could still have a local buffer
   // containing the dynamic value.
   if ((m_address.IsValid() ||
        m_value.GetValueType() == Value::ValueType::HostAddress) &&
       m_dynamic_type_info) {
     // The variable value is in the Scalar value inside the m_value. We can
     // point our m_data right to it.
     m_error = m_value.GetValueAsData(&exe_ctx, m_data, GetModule().get());

So that's going to try to call GetValueAsData on a value you've added the 
dynamic type info to, and that type could be bigger than the static value, 
causing us to read too much from the data buffer.

https://github.com/llvm/llvm-project/pull/125143
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to