aboutsummaryrefslogtreecommitdiff
path: root/health
diff options
context:
space:
mode:
authorSantiago Carot-Nemesio <sancane@gmail.com>2010-11-16 09:59:13 +0100
committerJohan Hedberg <johan.hedberg@nokia.com>2010-11-18 16:56:27 +0200
commit1242e834f339d35a4f94ddfac2db4e6ebcd92ba3 (patch)
treea8e77f8a1c1fb0cf5157f5e67ef9a6b718fb8ec1 /health
parentaabc01126b08e9fbd8af4335b4b74e2dbe10cca1 (diff)
downloadbluez-1242e834f339d35a4f94ddfac2db4e6ebcd92ba3.tar.gz
Fix dereference to NULL pointers during data channels creation
Diffstat (limited to 'health')
-rw-r--r--health/hdp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/health/hdp.c b/health/hdp.c
index ccfbfe0b..01c7ca0b 100644
--- a/health/hdp.c
+++ b/health/hdp.c
@@ -761,16 +761,21 @@ static struct hdp_channel *create_channel(struct hdp_device *dev,
{
struct hdp_channel *hdp_chann;
+ if (!dev)
+ return NULL;
+
hdp_chann = g_new0(struct hdp_channel, 1);
hdp_chann->config = config;
hdp_chann->dev = health_device_ref(dev);
- hdp_chann->mdl = mcap_mdl_ref(mdl);
hdp_chann->mdlid = mdlid;
- hdp_chann->app = hdp_application_ref(app);
- if (app)
+ if (mdl)
+ hdp_chann->mdl = mcap_mdl_ref(mdl);
+
+ if (app) {
hdp_chann->mdep = app->id;
- else
+ hdp_chann->app = hdp_application_ref(app);
+ } else
hdp_chann->edata = g_new0(struct hdp_echo_data, 1);
hdp_chann->path = g_strdup_printf("%s/chan%d",