Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83a9a284 authored by Sami Tolvanen's avatar Sami Tolvanen
Browse files

cfi: print target address on failure



Bug: 78862212
Bug: 67506682
Change-Id: Ifaa3e3f8fc5f19649f4857d185d50383b4a89055
Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
parent 3f8d1912
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -24,12 +24,12 @@
#define cfi_slowpath_handler	__cfi_slowpath
#endif /* CONFIG_CFI_PERMISSIVE */

static inline void handle_cfi_failure()
static inline void handle_cfi_failure(void *ptr)
{
#ifdef CONFIG_CFI_PERMISSIVE
	WARN_RATELIMIT(1, "CFI failure:\n");
	WARN_RATELIMIT(1, "CFI failure (target: [<%px>] %pF):\n", ptr, ptr);
#else
	pr_err("CFI failure:\n");
	pr_err("CFI failure (target: [<%px>] %pF):\n", ptr, ptr);
	BUG();
#endif
}
@@ -283,18 +283,18 @@ void cfi_slowpath_handler(uint64_t id, void *ptr, void *diag)
	if (likely(check))
		check(id, ptr, diag);
	else /* Don't allow unchecked modules */
		handle_cfi_failure();
		handle_cfi_failure(ptr);
}
EXPORT_SYMBOL(cfi_slowpath_handler);
#endif /* CONFIG_MODULES */

void cfi_failure_handler(void *data, void *value, void *vtable)
void cfi_failure_handler(void *data, void *ptr, void *vtable)
{
	handle_cfi_failure();
	handle_cfi_failure(ptr);
}
EXPORT_SYMBOL(cfi_failure_handler);

void __cfi_check_fail(void *data, void *value)
void __cfi_check_fail(void *data, void *ptr)
{
	handle_cfi_failure();
	handle_cfi_failure(ptr);
}