modes: Fix previous commit for potential legal NULLs
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Jan 2010 16:53:33 +0000 (16:53 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Jan 2010 16:54:22 +0000 (16:54 +0000)
If the count is 0, then the malloc is permitted to return NULL, so don't
throw an error in that case.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xf86drmMode.c

index 44ef05b..cfdee4a 100644 (file)
@@ -206,7 +206,11 @@ retry:
        r->crtcs      = drmAllocCpy(U642VOID(res.crtc_id_ptr), res.count_crtcs, sizeof(uint32_t));
        r->connectors = drmAllocCpy(U642VOID(res.connector_id_ptr), res.count_connectors, sizeof(uint32_t));
        r->encoders   = drmAllocCpy(U642VOID(res.encoder_id_ptr), res.count_encoders, sizeof(uint32_t));
-       if (!r->fbs || !r->crtcs || !r->connectors || !r->encoders) {
+       if ((res.count_fbs && !r->fbs) ||
+           (res.count_crtcs && !r->crtcs) ||
+           (res.count_connectors && !r->connectors) ||
+           (res.count_encoders && !r->encoders))
+       {
                drmFree(r->fbs);
                drmFree(r->crtcs);
                drmFree(r->connectors);