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

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
...@@ -27,9 +27,11 @@ ...@@ -27,9 +27,11 @@
static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp) 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; uint8_t count = 0;
memcpy(&n, hdcp->auth.msg.hdcp1.bksv, sizeof(uint64_t));
while (n) { while (n) {
count++; count++;
n &= (n - 1); n &= (n - 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment