https://bugs.freedesktop.org/show_bug.cgi?id=72732
Priority: medium Bug ID: 72732 Assignee: dri-devel@lists.freedesktop.org Summary: Missing NULL check; radeon_drm_winsys.c Severity: normal Classification: Unclassified OS: All Reporter: freedesktop@treblig.org Hardware: Other Status: NEW Version: unspecified Component: Drivers/DRI/R600 Product: Mesa
I can sometime trigger a seg in do_winsys_init at radeon_drm_winsys.c on my HD4350
There seems to be a simple missing NULL check:
214 version = drmGetVersion(ws->fd); 215 if (version->version_major != 2 || 216 version->version_minor < 3) {
All the other users of drmGetVersion do a NULL check, so I suggest adding:
if (!version) { fprintf(stderr,"%s: drmGetVersion NULL - bad fd (%d)?\n", __FUNCTION__, ws->fd); return FALSE; }
I believe this to be part of the reason for: https://bugzilla.redhat.com/show_bug.cgi?id=993463
why drmGetVersion is failing is a different matter (probably a bad fd at that point - but why?) , but at least the NULL check would stop the seg.
Dave
https://bugs.freedesktop.org/show_bug.cgi?id=72732
--- Comment #1 from Dave Gilbert freedesktop@treblig.org --- OK, I believe the case that's causing it to go down this route is a perms screw up somewhere; I was running this test in a separate X session (just logging as a normal user on the console and running X :2 )
But with a bit of debug I'm seeing:
libGL: OpenDriver: trying /usr/lib64/dri/tls/r600_dri.so libGL: OpenDriver: trying /usr/lib64/dri/r600_dri.so libGL error: failed to open drm device: Permission denied libGL error: failed to load driver: r600
[dg@major ~]$ ls -lZ /dev/dri/card0 crw-rw----+ root video system_u:object_r:dri_device_t:s0 /dev/dri/card0 [dg@major ~]$ id -Z unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
So I'm not quite sure what the perm screw up is, but that's separate - this will seg in glxgears or anything if the drm device won't open.
Dave
https://bugs.freedesktop.org/show_bug.cgi?id=72732
--- Comment #2 from Dave Gilbert freedesktop@treblig.org --- and now understand the perm problem; I was running
X :2
from vt 2, it was starting X visible on vt 3, when I changed to vt3 it removed the acl on /dev/dri/card0 so that it lost the perms when clients ran (although the server still had it open).
So still say it's missing that NULL check.
https://bugs.freedesktop.org/show_bug.cgi?id=72732
Andreas Boll andreas.boll.dev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|Drivers/DRI/R600 |Drivers/Gallium/r600
https://bugs.freedesktop.org/show_bug.cgi?id=72732
GitLab Migration User gitlab-migration@fdo.invalid changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |MOVED
--- Comment #3 from GitLab Migration User gitlab-migration@fdo.invalid --- -- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/476.
dri-devel@lists.freedesktop.org