diff options
-rw-r--r-- | src/armsoc_driver.c | 8 |
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; } |