summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorokuoku <mjt@cltn.org>2019-04-24 02:38:32 +0900
committerTim-Philipp Müller <tim@centricular.com>2020-09-25 00:39:18 +0100
commit9d3ec5586f301750d473b32b39c7013a680d8ba1 (patch)
tree9a394cf04f1910cb78e122b117831b5820978279
parent07e0e8ffbbdce53617a9d36990d9fa0c59562a14 (diff)
downloadgstreamer-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.c6
-rw-r--r--ext/jack/gstjackaudiosrc.c4
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;
}
}