Browse Source

[0.99.48] fix segfault on jack_deactivate()

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@874 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.109.0
joq 20 years ago
parent
commit
6e1928fe7c
2 changed files with 18 additions and 11 deletions
  1. +1
    -1
      configure.ac
  2. +17
    -10
      libjack/client.c

+ 1
- 1
configure.ac View File

@@ -15,7 +15,7 @@ dnl changes are made
dnl ---
JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=99
JACK_MICRO_VERSION=47
JACK_MICRO_VERSION=48

dnl ---
dnl HOWTO: updating the jack protocol version


+ 17
- 10
libjack/client.c View File

@@ -1611,14 +1611,19 @@ jack_activate (jack_client_t *client)

int
jack_deactivate (jack_client_t *client)

{
jack_request_t req;

req.type = DeactivateClient;
req.x.client_id = client->control->id;

return jack_client_deliver_request (client, &req);
int rc = ESRCH; /* already shut down */

if (client && client->control) { /* not shut down? */
rc = 0;
if (client->control->active) { /* still active? */
req.type = DeactivateClient;
req.x.client_id = client->control->id;
rc = jack_client_deliver_request (client, &req);
}
}
return rc;
}

int
@@ -1626,9 +1631,11 @@ jack_client_close (jack_client_t *client)
{
JSList *node;
void *status;
if (client->control->active) {
jack_deactivate (client);
int rc;

rc = jack_deactivate (client);
if (rc == ESRCH) { /* already shut down? */
return rc;
}

if (client->control->type == ClientExternal) {
@@ -1698,7 +1705,7 @@ jack_client_close (jack_client_t *client)
jack_slist_free (client->ports_ext);
jack_client_free (client);

return 0;
return rc;
}

int


Loading…
Cancel
Save