Just add some NULL pointer checking before using.

:-)

B.R
CaiYuanqing


>From ea2d74e2881c28ae890a7f78d0cd0985493263f9 Mon Sep 17 00:00:00 2001
From: Cai.Yuanqing <yuanqing....@tieto.com>
Date: Tue, 21 Dec 2010 13:59:06 +0800
Subject: [PATCH] Make module-coreaduio-detect more safe:add pa_assert(m) for NULL pointer checking


Signed-off-by: Cai.Yuanqing <yuanqing....@tieto.com>
---
 src/modules/coreaudio/module-coreaudio-detect.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/modules/coreaudio/module-coreaudio-detect.c b/src/modules/coreaudio/module-coreaudio-detect.c
index 6172a18..c23079a 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;
-- 
1.7.1

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

Reply via email to