2009-12-30 01:24:05

by Darren Jenkins

[permalink] [raw]
Subject: [PATCH] drm/radeon/radeon_cp.c: check for invalid radeon family

If there is an invalid radeon family the fw_name is NULL and causes an
NULL pointer dereference.
This just adds a check for something unexpected.

Coverity CID: 13252


Signed-off-by: Darren Jenkins <[email protected]>

diff --git drivers/gpu/drm/radeon/radeon_cp.c drivers/gpu/drm/radeon/radeon_cp.c
index 0b2f9c2..1e66337 100644
--- drivers/gpu/drm/radeon/radeon_cp.c
+++ drivers/gpu/drm/radeon/radeon_cp.c
@@ -531,6 +531,8 @@ static int radeon_cp_init_microcode(drm_radeon_private_t *dev_priv)
((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV570)) {
DRM_INFO("Loading R500 Microcode\n");
fw_name = FIRMWARE_R520;
+ } else {
+ return -EINVAL;
}

err = request_firmware(&dev_priv->me_fw, fw_name, &pdev->dev);


2010-01-07 03:48:53

by Dave Airlie

[permalink] [raw]
Subject: Re: [PATCH] drm/radeon/radeon_cp.c: check for invalid radeon family

On Wed, Dec 30, 2009 at 11:23 AM, Darren Jenkins
<[email protected]> wrote:
> If there is an invalid radeon family the fw_name is NULL and causes an
> NULL pointer dereference.
> This just adds a check for something unexpected.
>

Same as for last one, unless a developer explicity writes code wrong,
this cannot
happen, and I'd prefer a developer would see an oops.

Dave.