mxf: fix descriptor leak
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 28 Apr 2015 09:28:39 +0000 (11:28 +0200)
committerThiago Santos <thiagoss@osg.samsung.com>
Tue, 28 Apr 2015 14:53:52 +0000 (11:53 -0300)
Free the existing descriptor array, if any, before replacing it.

Fix leaks with the
validate.file.playback.scrub_forward_seeking.test-mpeg2-mp3_mxf scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=748580

gst/mxf/mxfmetadata.c

index 7c314e8..e306a55 100644 (file)
@@ -2239,6 +2239,7 @@ mxf_metadata_source_package_resolve (MXFMetadataBase * m, GHashTable * metadata)
       if (d->linked_track_id == package->tracks[i]->track_id ||
           (d->linked_track_id == 0 && package->n_essence_tracks == 1 &&
               (package->tracks[i]->type & 0xf0) == 0x30)) {
+        g_free (package->tracks[i]->descriptor);
         package->tracks[i]->descriptor =
             g_new0 (MXFMetadataFileDescriptor *, 1);
         package->tracks[i]->descriptor[0] = d;
@@ -2264,6 +2265,7 @@ mxf_metadata_source_package_resolve (MXFMetadataBase * m, GHashTable * metadata)
           n_descriptor++;
       }
 
+      g_free (package->tracks[i]->descriptor);
       package->tracks[i]->descriptor =
           g_new0 (MXFMetadataFileDescriptor *, n_descriptor);
       package->tracks[i]->n_descriptor = n_descriptor;