summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/intel_dp.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2015-03-12 17:10:37 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-03-20 11:48:09 +0100
commite6bda3e4cb439679946c9378628d906ab32bf590 (patch)
tree975febf171bef7206ccf9e9aed543ea3af325658 /drivers/gpu/drm/i915/intel_dp.c
parented4e9c1d46980e76254573ccd59efb3e8aec77d2 (diff)
drm/i915: Avoid overflowing the DP link rate arrays
Complain loudly if we ever attempt to overflow the the supported_rates[] array. This should never happen since the sink_rates[] array will always be smaller or of equal size. But should someone change that we want to catch it without scribblign over the stack. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Sonika Jindal <sonika.jindal@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index c02e022ace70..ff0aa6f87679 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1203,6 +1203,8 @@ static int intersect_rates(const int *source_rates, int source_len,
while (i < source_len && j < sink_len) {
if (source_rates[i] == sink_rates[j]) {
+ if (WARN_ON(k >= DP_MAX_SUPPORTED_RATES))
+ return k;
supported_rates[k] = source_rates[i];
++k;
++i;