drm/radeon: fix copy of uninitialized variable back to userspace
authorColin Ian King <colin.king@canonical.com>
Wed, 3 Mar 2021 00:27:59 +0000 (00:27 +0000)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 3 Mar 2021 15:51:37 +0000 (10:51 -0500)
Currently the ioctl command RADEON_INFO_SI_BACKEND_ENABLED_MASK can
copy back uninitialised data in value_tmp that pointer *value points
to. This can occur when rdev->family is less than CHIP_BONAIRE and
less than CHIP_TAHITI.  Fix this by adding in a missing -EINVAL
so that no invalid value is copied back to userspace.

Addresses-Coverity: ("Uninitialized scalar variable)
Cc: stable@vger.kernel.org # 3.13+
Fixes: 439a1cfffe2c ("drm/radeon: expose render backend mask to the userspace")
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_kms.c

index 2479d6ab7a368c5f2d4e8fe84b1c1aa49d8a1892..58876bb4ef2a14284af07e05f58c8a54e4fd3e09 100644 (file)
@@ -518,6 +518,7 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
                        *value = rdev->config.si.backend_enable_mask;
                } else {
                        DRM_DEBUG_KMS("BACKEND_ENABLED_MASK is si+ only!\n");
+                       return -EINVAL;
                }
                break;
        case RADEON_INFO_MAX_SCLK: