The remote domain may send unsolicited Z_LOG_MULTIDOMAIN_ID_DROPPED IPC messages, which are not handled in log_multidomain_link_on_recv_cb(). With CONFIG_ASSERT=y, this will cause an assertion failure. With asserts disabled, this message would be treated as a reply to any in progress request and cause getter_msg_process() to return early. In turn, this can cause various kinds of memory corruption when the real reply arrives and the callback reads/writes stack variables that are no longer valid. Fix this by explicitly ignoring Z_LOG_MULTIDOMAIN_ID_DROPPED, and also don't treat unrecognized message types as replies. Signed-off-by: Ben Wolsieffer <benwolsieffer@gmail.com> |
||
|---|---|---|
| .. | ||
| backends | ||
| mipi_syst | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.filtering | ||
| Kconfig.formatting | ||
| Kconfig.frontends | ||
| Kconfig.links | ||
| Kconfig.misc | ||
| Kconfig.mode | ||
| Kconfig.processing | ||
| Kconfig.template.log_config | ||
| Kconfig.template.log_config_inherit | ||
| Kconfig.template.log_format_config | ||
| log_cache.c | ||
| log_cache.h | ||
| log_cmds.c | ||
| log_core.c | ||
| log_frontend_dict_uart.c | ||
| log_link_ipc_service.c | ||
| log_mgmt.c | ||
| log_minimal.c | ||
| log_msg.c | ||
| log_multidomain_link.c | ||
| log_output_custom.c | ||
| log_output_dict.c | ||
| log_output_syst.c | ||
| log_output.c | ||