OSDN Git Service

modetest: fix drmModeGetConnector memory leak
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Sat, 21 Apr 2012 20:51:51 +0000 (17:51 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 3 May 2012 11:30:49 +0000 (13:30 +0200)
Don't "continue" without freeing the connector.

192 bytes in 6 blocks are indirectly lost in loss record 6 of 12
   at 0x4C2779D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4E30DD8: drmMalloc (xf86drm.c:147)
   by 0x4E35024: drmAllocCpy (xf86drmMode.c:73)
   by 0x4E35D69: drmModeGetConnector (xf86drmMode.c:507)
   by 0x402F22: dump_connectors (modetest.c:181)
   by 0x40261B: main (modetest.c:801)

Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
tests/modetest/modetest.c

index 1b9ae18..64809da 100644 (file)
@@ -199,17 +199,16 @@ void dump_connectors(void)
                        printf("%s%d", j > 0 ? ", " : "", connector->encoders[j]);
                printf("\n");
 
-               if (!connector->count_modes)
-                       continue;
-
-               printf("  modes:\n");
-               printf("  name refresh (Hz) hdisp hss hse htot vdisp "
-                      "vss vse vtot)\n");
-               for (j = 0; j < connector->count_modes; j++)
-                       dump_mode(&connector->modes[j]);
-
-               printf("  props:\n");
-               dump_props(connector);
+               if (connector->count_modes) {
+                       printf("  modes:\n");
+                       printf("  name refresh (Hz) hdisp hss hse htot vdisp "
+                              "vss vse vtot)\n");
+                       for (j = 0; j < connector->count_modes; j++)
+                               dump_mode(&connector->modes[j]);
+
+                       printf("  props:\n");
+                       dump_props(connector);
+               }
 
                drmModeFreeConnector(connector);
        }