mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
drm: Prevent NULL deref in drm_name_info()
If a driver does not have a parent, or never sets the unique name for itself, then we may proceed to chase a NULL dereference through debugfs/.../name. Testcase: igt/vgem_basic/debugfs Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1466448813-23340-1-git-send-email-chris@chris-wilson.co.uk
This commit is contained in:
parent
c001da4f7c
commit
e4245ea898
1 changed files with 9 additions and 10 deletions
|
@ -51,17 +51,16 @@ int drm_name_info(struct seq_file *m, void *data)
|
||||||
struct drm_minor *minor = node->minor;
|
struct drm_minor *minor = node->minor;
|
||||||
struct drm_device *dev = minor->dev;
|
struct drm_device *dev = minor->dev;
|
||||||
struct drm_master *master = minor->master;
|
struct drm_master *master = minor->master;
|
||||||
if (!master)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (master->unique) {
|
seq_printf(m, "%s", dev->driver->name);
|
||||||
seq_printf(m, "%s %s %s\n",
|
if (dev->dev)
|
||||||
dev->driver->name,
|
seq_printf(m, " dev=%s", dev_name(dev->dev));
|
||||||
dev_name(dev->dev), master->unique);
|
if (master && master->unique)
|
||||||
} else {
|
seq_printf(m, " master=%s", master->unique);
|
||||||
seq_printf(m, "%s %s\n",
|
if (dev->unique)
|
||||||
dev->driver->name, dev_name(dev->dev));
|
seq_printf(m, " unique=%s", dev->unique);
|
||||||
}
|
seq_printf(m, "\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue