diff options
author | Santiago Carot-Nemesio <sancane@gmail.com> | 2010-11-16 09:59:13 +0100 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2010-11-18 16:56:27 +0200 |
commit | 1242e834f339d35a4f94ddfac2db4e6ebcd92ba3 (patch) | |
tree | a8e77f8a1c1fb0cf5157f5e67ef9a6b718fb8ec1 /health | |
parent | aabc01126b08e9fbd8af4335b4b74e2dbe10cca1 (diff) | |
download | bluez-1242e834f339d35a4f94ddfac2db4e6ebcd92ba3.tar.gz |
Fix dereference to NULL pointers during data channels creation
Diffstat (limited to 'health')
-rw-r--r-- | health/hdp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/health/hdp.c b/health/hdp.c index ccfbfe0b2..01c7ca0bb 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", |