summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Martin <consume.noise@gmail.com>2018-03-02 12:12:09 +0100
committerMichel Dänzer <michel.daenzer@amd.com>2018-03-02 12:12:09 +0100
commitaef8fe6e9e94ebecbbb6adf940160d3a7ab4d5ac (patch)
tree54d2e8fe26e73d437ac2c09b8b378da8f58e2df0
parent1ef12a92ca53cd6fbfed3ef8628616445b007c9a (diff)
modesetting: Reset output_id if drmModeGetConnector failed
If drmModeGetConnector() fails in drmmode_output_detect(), we have to reset the output_id to -1 too. Yet another spot leading to a potential NULL dereference when handling the mode_output member as output_id was != -1. Though, this case should be very hard to hit. Signed-off-by: Daniel Martin <consume.noise@gmail.com> (Ported from amdgpu commit 10054b6c3d9a755b30abb43020121b9631fa296d)
-rw-r--r--src/drmmode_display.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 606f3f90..525ded25 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1424,9 +1424,12 @@ drmmode_output_detect(xf86OutputPtr output)
xf86OutputStatus status;
drmModeFreeConnector(drmmode_output->mode_output);
- drmmode_output->mode_output = drmModeGetConnector(pRADEONEnt->fd, drmmode_output->output_id);
- if (!drmmode_output->mode_output)
+ drmmode_output->mode_output =
+ drmModeGetConnector(pRADEONEnt->fd, drmmode_output->output_id);
+ if (!drmmode_output->mode_output) {
+ drmmode_output->output_id = -1;
return XF86OutputStatusDisconnected;
+ }
switch (drmmode_output->mode_output->connection) {
case DRM_MODE_CONNECTED: