diff options
author | paul <paul@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2009-11-13 15:40:45 +0000 |
---|---|---|
committer | paul <paul@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2009-11-13 15:40:45 +0000 |
commit | f5415c352c4be9214a244e639ffdd6ad4b012149 (patch) | |
tree | 0eda2d7af242a0226cc6aec1578f5250b0407d6a /jackd/clientengine.c | |
parent | 2399e8c181aebcffe8e1562629ff9a088e549b63 (diff) | |
download | jack1-f5415c352c4be9214a244e639ffdd6ad4b012149.tar.gz |
fix potential crash/memory corruption if client exits before jack_client_open() returns
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@3783 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'jackd/clientengine.c')
-rw-r--r-- | jackd/clientengine.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/jackd/clientengine.c b/jackd/clientengine.c index 5de971f..4e245ca 100644 --- a/jackd/clientengine.c +++ b/jackd/clientengine.c @@ -793,7 +793,10 @@ jack_client_create (jack_engine_t *engine, int client_fd) if (write (client_fd, &res, sizeof (res)) != sizeof (res)) { jack_error ("cannot write connection response to client"); - jack_client_delete (engine, client); + jack_lock_graph (engine); + client->control->dead = 1; + jack_remove_client (engine, client); + jack_unlock_graph (engine); return -1; } |