Diff between ba5442362d498ebc38deb435ab9dc7045e5ad6f2 and 333dacef05b7a5cb7266a6508deedb3632229295

Changed Files

File Additions Deletions Status
profiles/health/hdp_util.c +9 -7 modified

Full Patch

diff --git a/profiles/health/hdp_util.c b/profiles/health/hdp_util.c
index 5676eee..e3e0830 100644
--- a/profiles/health/hdp_util.c
+++ b/profiles/health/hdp_util.c
@@ -598,6 +598,13 @@ fail:
 	return NULL;
 }
 
+static void free_hdp_list(void *list)
+{
+	sdp_list_t *hdp_list = list;
+
+	sdp_list_free(hdp_list, (sdp_free_func_t)sdp_data_free);
+}
+
 static gboolean register_features(struct hdp_application *app,
 						sdp_list_t **sup_features)
 {
@@ -620,16 +627,11 @@ static gboolean register_features(struct hdp_application *app,
 fail:
 	if (hdp_feature != NULL)
 		sdp_list_free(hdp_feature, (sdp_free_func_t)sdp_data_free);
+	if (*sup_features != NULL)
+		sdp_list_free(*sup_features, free_hdp_list);
 	return FALSE;
 }
 
-static void free_hdp_list(void *list)
-{
-	sdp_list_t *hdp_list = list;
-
-	sdp_list_free(hdp_list, (sdp_free_func_t)sdp_data_free);
-}
-
 static gboolean register_service_sup_features(GSList *app_list,
 						sdp_record_t *sdp_record)
 {