Commit 9a624ea3 authored by Mostafa Saleh's avatar Mostafa Saleh Committed by Marc Zyngier
Browse files

KVM: arm64: Remove potential UB on nvhe tracing clock update



Sashiko(locally) reports possiblity of division by zero and
out-of-bounds bitwise shift in trace_clock_update().

Although the clock update is untrusted, we should at least have some
basic checks to avoid undefined behaviours.

Reviewed-by: default avatarVincent Donnefort <vdonnefort@google.com>
Signed-off-by: default avatarMostafa Saleh <smostafa@google.com>
Link: https://patch.msgid.link/20260430103724.2151625-1-smostafa@google.com


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent fc240715
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -35,6 +35,9 @@ void trace_clock_update(u32 mult, u32 shift, u64 epoch_ns, u64 epoch_cyc)
	struct clock_data *clock = &trace_clock_data;
	u64 bank = clock->cur ^ 1;

	if (!mult || shift >= 64)
		return;

	clock->data[bank].mult			= mult;
	clock->data[bank].shift			= shift;
	clock->data[bank].epoch_ns		= epoch_ns;