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

Commit e4245ea8 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter
Browse files

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: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1466448813-23340-1-git-send-email-chris@chris-wilson.co.uk
parent c001da4f
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -51,17 +51,16 @@ int drm_name_info(struct seq_file *m, void *data)
	struct drm_minor *minor = node->minor;
	struct drm_device *dev = minor->dev;
	struct drm_master *master = minor->master;
	if (!master)
		return 0;

	if (master->unique) {
		seq_printf(m, "%s %s %s\n",
			   dev->driver->name,
			   dev_name(dev->dev), master->unique);
	} else {
		seq_printf(m, "%s %s\n",
			   dev->driver->name, dev_name(dev->dev));
	}
	seq_printf(m, "%s", dev->driver->name);
	if (dev->dev)
		seq_printf(m, " dev=%s", dev_name(dev->dev));
	if (master && master->unique)
		seq_printf(m, " master=%s", master->unique);
	if (dev->unique)
		seq_printf(m, " unique=%s", dev->unique);
	seq_printf(m, "\n");

	return 0;
}