Fix dereference to NULL pointers during data channels creation
diff --git a/health/hdp.c b/health/hdp.c
index ccfbfe0..01c7ca0 100644
--- a/health/hdp.c
+++ b/health/hdp.c
@@ -761,16 +761,21 @@
{
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",