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 --- dnl ---
JACK_MAJOR_VERSION=0 JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=99 JACK_MINOR_VERSION=99
JACK_MICRO_VERSION=47
JACK_MICRO_VERSION=48


dnl --- dnl ---
dnl HOWTO: updating the jack protocol version 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 int
jack_deactivate (jack_client_t *client) jack_deactivate (jack_client_t *client)

{ {
jack_request_t req; 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 int
@@ -1626,9 +1631,11 @@ jack_client_close (jack_client_t *client)
{ {
JSList *node; JSList *node;
void *status; 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) { if (client->control->type == ClientExternal) {
@@ -1698,7 +1705,7 @@ jack_client_close (jack_client_t *client)
jack_slist_free (client->ports_ext); jack_slist_free (client->ports_ext);
jack_client_free (client); jack_client_free (client);


return 0;
return rc;
} }


int int


Loading…
Cancel
Save