From d28fc0df8997fed0da9ac3f54138f792dc660841 Mon Sep 17 00:00:00 2001 From: Cai Yuanqing Date: Tue, 21 Dec 2010 13:59:06 +0800 Subject: coreaudio: Make coreaudio-detect safer by adding asserts before dereferencing --- src/modules/coreaudio/module-coreaudio-detect.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/modules/coreaudio/module-coreaudio-detect.c b/src/modules/coreaudio/module-coreaudio-detect.c index 6172a187..c23079a9 100644 --- a/src/modules/coreaudio/module-coreaudio-detect.c +++ b/src/modules/coreaudio/module-coreaudio-detect.c @@ -62,12 +62,13 @@ static int ca_device_added(struct pa_module *m, AudioObjectID id) { AudioObjectPropertyAddress property_address; OSStatus err; pa_module *mod; - struct userdata *u = m->userdata; + struct userdata *u; struct ca_device *dev; char *args, tmp[64]; UInt32 size; - pa_assert(u); + pa_assert(m); + pa_assert_se(u = m->userdata); /* To prevent generating a black hole that will suck us in, don't create sources/sinks for PulseAudio virtual devices */ @@ -108,9 +109,10 @@ static int ca_update_device_list(struct pa_module *m) { UInt32 i, size, num_devices; AudioDeviceID *device_id; struct ca_device *dev; - struct userdata *u = m->userdata; + struct userdata *u; - pa_assert(u); + pa_assert(m); + pa_assert_se(u = m->userdata); property_address.mSelector = kAudioHardwarePropertyDevices; property_address.mScope = kAudioObjectPropertyScopeGlobal; @@ -202,6 +204,8 @@ int pa__init(pa_module *m) { struct userdata *u = pa_xnew0(struct userdata, 1); AudioObjectPropertyAddress property_address; + pa_assert(m); + m->userdata = u; property_address.mSelector = kAudioHardwarePropertyDevices; @@ -227,11 +231,12 @@ fail: } void pa__done(pa_module *m) { - struct userdata *u = m->userdata; + struct userdata *u; struct ca_device *dev = u->devices; AudioObjectPropertyAddress property_address; - pa_assert(u); + pa_assert(m); + pa_assert_se(u = m->userdata); property_address.mSelector = kAudioHardwarePropertyDevices; property_address.mScope = kAudioObjectPropertyScopeGlobal; -- cgit