Hi Tao,
On 20/3/24 07:02, Markus Armbruster wrote:
Tao Su <tao1...@linux.intel.com> writes:
monitor_puts() doesn't check the monitor pointer, but do_inject_x86_mce()
may have a parameter with NULL monitor pointer. Check the monitor pointer
before calling monitor_puts().
Fixes: bf0c50d4aa85 (monitor: expose monitor_puts to rest of code)
Reviwed-by: Xiaoyao Li <xiaoyao...@intel.com>
Signed-off-by: Tao Su <tao1...@linux.intel.com>
---
target/i386/helper.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/target/i386/helper.c b/target/i386/helper.c
index 2070dd0dda..a9ff830a17 100644
--- a/target/i386/helper.c
+++ b/target/i386/helper.c
@@ -430,7 +430,8 @@ static void do_inject_x86_mce(CPUState *cs, run_on_cpu_data
data)
if (need_reset) {
emit_guest_memory_failure(MEMORY_FAILURE_ACTION_RESET, ar,
recursive);
- monitor_puts(params->mon, msg);
+ if (params->mon)
Missing braces, see QEMU coding style:
https://www.qemu.org/docs/master/devel/style.html#block-structure
+ monitor_puts(params->mon, msg);
qemu_log_mask(CPU_LOG_RESET, "%s\n", msg);
qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
return;
Could instead revert the broken part of commit bf0c50d4aa85:
- monitor_puts(params->mon, msg);
+ monitor_printf(params->mon, "%s", msg);
qemu_log_mask(CPU_LOG_RESET, "%s\n", msg);
Then the fact that we send the same message to monitor and log is again
more obvious.
Either way:
Reviewed-by: Markus Armbruster <arm...@redhat.com>