drmModeFreeResources() always leaked some memory.
authorVille Syrjälä <ville.syrjala at linux.intel.com>
Thu, 2 Feb 2012 19:53:39 +0000 (14:53 -0500)
committerJerome Glisse <jglisse@redhat.com>
Thu, 2 Feb 2012 19:53:39 +0000 (14:53 -0500)
drmModeGetPlaneResources() and drmModeGetPlane() leaked in one error
path.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
xf86drmMode.c

index da7b462..e67ed4a 100644 (file)
@@ -96,6 +96,10 @@ void drmModeFreeResources(drmModeResPtr ptr)
        if (!ptr)
                return;
 
+       drmFree(ptr->fbs);
+       drmFree(ptr->crtcs);
+       drmFree(ptr->connectors);
+       drmFree(ptr->encoders);
        drmFree(ptr);
 
 }
@@ -898,6 +902,7 @@ retry:
                                 ovr.count_format_types, sizeof(uint32_t));
        if (ovr.count_format_types && !r->formats) {
                drmFree(r->formats);
+               drmFree(r);
                r = 0;
        }
 
@@ -951,6 +956,7 @@ retry:
                                  res.count_planes, sizeof(uint32_t));
        if (res.count_planes && !r->planes) {
                drmFree(r->planes);
+               drmFree(r);
                r = 0;
        }