diff options
author | okuoku <mjt@cltn.org> | 2019-04-24 02:38:32 +0900 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2020-09-25 00:39:18 +0100 |
commit | 9d3ec5586f301750d473b32b39c7013a680d8ba1 (patch) | |
tree | 9a394cf04f1910cb78e122b117831b5820978279 | |
parent | 07e0e8ffbbdce53617a9d36990d9fa0c59562a14 (diff) | |
download | gstreamer-plugins-good-9d3ec5586f301750d473b32b39c7013a680d8ba1.tar.gz |
jack: Use jack_free(3) to release ports
Port objects acquired with jack_get_ports() need to be freed with
jack_free(3), not stdlib free().
On Windows, Jack may be linked against different libc than GStreamer
libraries so free()ing port objects directly might cause crash because
of libc mismatch.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/737>
-rw-r--r-- | ext/jack/gstjackaudiosink.c | 6 | ||||
-rw-r--r-- | ext/jack/gstjackaudiosrc.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index 4f49f2576..701d25a84 100644 --- a/ext/jack/gstjackaudiosink.c +++ b/ext/jack/gstjackaudiosink.c @@ -488,7 +488,7 @@ gst_jack_ring_buffer_acquire (GstAudioRingBuffer * buf, if (res != 0 && res != EEXIST) goto cannot_connect; } - free (ports); + jack_free (ports); } done: @@ -523,7 +523,7 @@ cannot_connect: GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS, (NULL), ("Could not connect output ports to physical ports (%d:%s)", res, g_strerror (res))); - free (ports); + jack_free (ports); return FALSE; } } @@ -927,7 +927,7 @@ gst_jack_audio_sink_getcaps (GstBaseSink * bsink, GstCaps * filter) max = 0; if (ports != NULL) { for (; ports[max]; max++); - free (ports); + jack_free (ports); } else max = 0; } else { diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c index 53ebee70f..931f4dddb 100644 --- a/ext/jack/gstjackaudiosrc.c +++ b/ext/jack/gstjackaudiosrc.c @@ -502,7 +502,7 @@ gst_jack_ring_buffer_acquire (GstAudioRingBuffer * buf, if (res != 0 && res != EEXIST) goto cannot_connect; } - free (ports); + jack_free (ports); } done: @@ -537,7 +537,7 @@ cannot_connect: GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("Could not connect input ports to physical ports (%d:%s)", res, g_strerror (res))); - free (ports); + jack_free (ports); return FALSE; } } |