diff options
author | Radhakrishna Sripada <radhakrishna.sripada@intel.com> | 2018-04-04 15:59:57 -0700 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2018-04-06 09:57:31 +0300 |
commit | 46a67c4d16ec86ca84a93f7dc92c54138e38a129 (patch) | |
tree | 1a07dd0fcfac847f4acd96481bd76142071af719 /drivers/gpu/drm/i915/intel_hdcp.c | |
parent | 40da1d310e8a155a09cd64b5b3fd3548a9dcfda0 (diff) | |
download | linux-stable-46a67c4d16ec86ca84a93f7dc92c54138e38a129.tar.gz linux-stable-46a67c4d16ec86ca84a93f7dc92c54138e38a129.tar.bz2 linux-stable-46a67c4d16ec86ca84a93f7dc92c54138e38a129.zip |
drm/i915: Fix memory leak in intel_hdcp auth
Static code analysis tool reported memory leak in
intel_hdcp_auth_downstream. Fixing the memory leak.
v2: Rebase, move free to a cleanup label(Jani)
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180404225957.7457-1-radhakrishna.sripada@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdcp.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdcp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c index 98a9c81e2dc1..2db5da550a1c 100644 --- a/drivers/gpu/drm/i915/intel_hdcp.c +++ b/drivers/gpu/drm/i915/intel_hdcp.c @@ -435,7 +435,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port, ret = shim->read_ksv_fifo(intel_dig_port, num_downstream, ksv_fifo); if (ret) - return ret; + goto err; /* * When V prime mismatches, DP Spec mandates re-read of @@ -451,12 +451,15 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port, if (i == tries) { DRM_ERROR("V Prime validation failed.(%d)\n", ret); - return ret; + goto err; } DRM_DEBUG_KMS("HDCP is enabled (%d downstream devices)\n", num_downstream); - return 0; + ret = 0; +err: + kfree(ksv_fifo); + return ret; } /* Implements Part 1 of the HDCP authorization procedure */ |