Commit 3a070d3d authored by Max Kellermann's avatar Max Kellermann

jack: allocate ring buffers before connecting

If the ring buffers are allocated after jack_activate(), mpd_jack_process() might segfault because it attempts to access them.
parent bbf04537
......@@ -34,6 +34,8 @@ ver 0.15 - (200?/??/??)
ver 0.14.2 (2009/??/??)
* audio outputs:
- jack: allocate ring buffers before connecting
ver 0.14.1 (2009/01/17)
......
......@@ -217,6 +217,9 @@ mpd_jack_connect(struct jack_data *jd, struct audio_format *audio_format)
jd->audio_format = audio_format;
jd->ringbuffer[0] = jack_ringbuffer_create(jd->ringbuffer_size);
jd->ringbuffer[1] = jack_ringbuffer_create(jd->ringbuffer_size);
if ((jd->client = jack_client_new(mpd_jack_name(jd))) == NULL) {
g_warning("jack server not running?");
return -1;
......@@ -263,11 +266,6 @@ mpd_jack_connect(struct jack_data *jd, struct audio_format *audio_format)
if ( jd->output_ports[1] ) {
const char *name = mpd_jack_name(jd);
jd->ringbuffer[0] = jack_ringbuffer_create(jd->ringbuffer_size);
jd->ringbuffer[1] = jack_ringbuffer_create(jd->ringbuffer_size);
memset(jd->ringbuffer[0]->buf, 0, jd->ringbuffer[0]->size);
memset(jd->ringbuffer[1]->buf, 0, jd->ringbuffer[1]->size);
port_name = g_malloc(sizeof(port_name[0]) * (7 + strlen(name)));
sprintf(port_name, "%s:left", name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment