Commit a1acc5d0 authored by Bhawanpreet Lakha's avatar Bhawanpreet Lakha Committed by Alex Deucher
Browse files

drm/amd/display: Fix static analysis bug in validate_bksv



[Why]
static analysis throws the error below

Out-of-bounds read (OVERRUN)
Overrunning array of 5 bytes at byte offset 7 by dereferencing pointer
(uint64_t *)hdcp->auth.msg.hdcp1.bksv.

var n is going to contain  r0p and bcaps. if they are non-zero the count
will be wrong

How]
Use memcpy instead to avoid this.

Signed-off-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 30216900
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -27,9 +27,11 @@

static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp)
{
	uint64_t n = *(uint64_t *)hdcp->auth.msg.hdcp1.bksv;
	uint64_t n = 0;
	uint8_t count = 0;

	memcpy(&n, hdcp->auth.msg.hdcp1.bksv, sizeof(uint64_t));

	while (n) {
		count++;
		n &= (n - 1);