media: Fix scan-build warnings
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 30 Aug 2022 23:55:32 +0000 (16:55 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:54 +0000 (14:55 +0530)
This fixes the following warnings:

profiles/audio/media.c:1465:6: warning: 8th function call argument
is an uninitialized value
        if (media_endpoint_create(adapter, sender, path, uuid, delay_reporting,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
profiles/audio/media.c:3012:3: warning: Use of memory after it is freed
                release_endpoint(adapter->endpoints->data);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
profiles/audio/media.c:3015:3: warning: Use of memory after it is freed
                media_player_destroy(adapter->players->data);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
profiles/audio/media.c

index 2fea023..5a53017 100644 (file)
@@ -1755,7 +1755,7 @@ static DBusMessage *register_endpoint(DBusConnection *conn, DBusMessage *msg,
        gboolean delay_reporting = FALSE;
        uint8_t codec = 0;
        struct bt_bap_pac_qos qos = {};
-       uint8_t *capabilities;
+       uint8_t *capabilities = NULL;
        int size = 0;
        int err;
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
@@ -3437,14 +3437,25 @@ static const GDBusPropertyTable media_properties[] = {
 static void path_free(void *data)
 {
        struct media_adapter *adapter = data;
+       GSList *l;
 
        queue_destroy(adapter->apps, app_free);
 
-       while (adapter->endpoints)
-               release_endpoint(adapter->endpoints->data);
+       for (l = adapter->endpoints; l;) {
+               struct media_endpoint *endpoint = l->data;
+
+               l = g_slist_next(l);
+
+               release_endpoint(endpoint);
+       }
+
+       for (l = adapter->players; l;) {
+               struct media_player *mp = l->data;
+
+               l = g_slist_next(l);
 
-       while (adapter->players)
-               media_player_destroy(adapter->players->data);
+               media_player_destroy(mp);
+       }
 
        adapters = g_slist_remove(adapters, adapter);