From d09287d211164a93bcbb66839998fc64bad746ce Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 4 Mar 2009 04:00:00 +0100 Subject: Fix a NULL pointer access when sutting down esound/simple connections If a connection is unlinked make sure the process_msg function doesn't crash when a message is received afterwards. Closes #463. --- src/pulsecore/protocol-esound.c | 3 +++ src/pulsecore/protocol-simple.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c index cac4e36c..2b80c65f 100644 --- a/src/pulsecore/protocol-esound.c +++ b/src/pulsecore/protocol-esound.c @@ -1290,6 +1290,9 @@ static int connection_process_msg(pa_msgobject *o, int code, void*userdata, int6 connection *c = CONNECTION(o); connection_assert_ref(c); + if (!c->protocol) + return -1; + switch (code) { case CONNECTION_MESSAGE_REQUEST_DATA: do_work(c); diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c index b43245a4..44fe5973 100644 --- a/src/pulsecore/protocol-simple.c +++ b/src/pulsecore/protocol-simple.c @@ -283,6 +283,9 @@ static int connection_process_msg(pa_msgobject *o, int code, void*userdata, int6 connection *c = CONNECTION(o); connection_assert_ref(c); + if (!c->protocol) + return -1; + switch (code) { case CONNECTION_MESSAGE_REQUEST_DATA: do_work(c); -- cgit