tests/kms_flip: don't leak the CRTC
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 30 Dec 2013 13:30:03 +0000 (11:30 -0200)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Tue, 7 Jan 2014 11:57:04 +0000 (09:57 -0200)
The kms_flip program calls kmstest_get_connector_config, which returns
a struct containing some allocated variables, including a pointer to
the CRTC. The problem is that we copy the values returned by this
structure to the test_output struct, but we ignore the CRTC pointer.
So free the CRTC pointer instead of leaking it.

Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
tests/kms_flip.c

index 5b1ce9d..b0f0754 100644 (file)
@@ -921,6 +921,8 @@ static void connector_find_preferred_mode(uint32_t connector_id, int crtc_idx,
 
        o->fb_width = o->kmode[0].hdisplay;
        o->fb_height = o->kmode[0].vdisplay;
+
+       drmModeFreeCrtc(config.crtc);
 }
 
 static bool mode_compatible(const drmModeModeInfo *a, const drmModeModeInfo *b)
@@ -986,6 +988,9 @@ found:
        o->kencoder[1] = config[1].encoder;
        o->_crtc[1] = config[1].crtc->crtc_id;
        o->kmode[1] = *mode[1];
+
+       drmModeFreeCrtc(config[0].crtc);
+       drmModeFreeCrtc(config[1].crtc);
 }
 
 static void paint_flip_mode(struct kmstest_fb *fb, bool odd_frame)