Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36849cc3 authored by Jordan Crouse's avatar Jordan Crouse Committed by Rob Clark
Browse files

drm/msm: Don't increase priv->num_aspaces until we know that it fits



priv->num_aspaces is increased and then checked to see if it still fits
in the priv->aspace array.  If it doesn't, we warn and exit but
priv->num_aspaces remains incremented.

Don't incremement the count until we know that it fits in the array.

Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent 2002c9c3
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -55,14 +55,13 @@ int msm_register_address_space(struct drm_device *dev,
		struct msm_gem_address_space *aspace)
{
	struct msm_drm_private *priv = dev->dev_private;
	int idx = priv->num_aspaces++;

	if (WARN_ON(idx >= ARRAY_SIZE(priv->aspace)))
	if (WARN_ON(priv->num_aspaces >= ARRAY_SIZE(priv->aspace)))
		return -EINVAL;

	priv->aspace[idx] = aspace;
	priv->aspace[priv->num_aspaces] = aspace;

	return idx;
	return priv->num_aspaces++;
}

#ifdef CONFIG_DRM_MSM_REGISTER_LOGGING