Skip to content

Commit

Permalink
drm: check return values in drm_version
Browse files Browse the repository at this point in the history
In drm_version, actually check the results from function calls so that
we're not potentially passing garbage back to userspace.

Signed-off-by: Andres Salomon <dilinger@collabora.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Andres Salomon authored and Dave Airlie committed Nov 18, 2009
1 parent 140a45f commit dad07ca
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions drivers/gpu/drm/drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,15 +403,21 @@ static int drm_version(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{
struct drm_version *version = data;
int err;

version->version_major = dev->driver->major;
version->version_minor = dev->driver->minor;
version->version_patchlevel = dev->driver->patchlevel;
drm_copy_field(version->name, &version->name_len, dev->driver->name);
drm_copy_field(version->date, &version->date_len, dev->driver->date);
drm_copy_field(version->desc, &version->desc_len, dev->driver->desc);

return 0;
err = drm_copy_field(version->name, &version->name_len,
dev->driver->name);
if (!err)
err = drm_copy_field(version->date, &version->date_len,
dev->driver->date);
if (!err)
err = drm_copy_field(version->desc, &version->desc_len,
dev->driver->desc);

return err;
}

/**
Expand Down

0 comments on commit dad07ca

Please sign in to comment.