summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/armsoc_driver.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/armsoc_driver.c b/src/armsoc_driver.c
index 96989e4..329e11d 100644
--- a/src/armsoc_driver.c
+++ b/src/armsoc_driver.c
@@ -579,7 +579,7 @@ ARMSOCProbe(DriverPtr drv, int flags)
*/
numDevSections = 1;
} else {
- return FALSE;
+ goto out;
}
}
@@ -655,7 +655,8 @@ ARMSOCProbe(DriverPtr drv, int flags)
if (!pScrn) {
EARLY_ERROR_MSG(
"Cannot allocate a ScrnInfoPtr");
- return FALSE;
+ drmClose(fd);
+ goto free_sections;
}
/* Allocate the driver's Screen-specific, "private"
* data structure and hook it into the ScrnInfoRec's
@@ -716,7 +717,10 @@ ARMSOCProbe(DriverPtr drv, int flags)
drmClose(fd);
}
}
+free_sections:
free(devSections);
+
+out:
return foundScreen;
}