diff --git a/src/shared/bap.c b/src/shared/bap.c
index 25369e6..21aa8aa 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
return bap;
}
+static struct bt_bap *bt_bap_ref_safe(struct bt_bap *bap)
+{
+ if (!bap || !bap->ref_count)
+ return NULL;
+
+ return bt_bap_ref(bap);
+}
+
void bt_bap_unref(struct bt_bap *bap)
{
if (!bap)
if (!queue_isempty(bap->pending))
return;
- bt_bap_ref(bap);
+ if (!bt_bap_ref_safe(bap))
+ return;
for (entry = queue_get_entries(bap->ready_cbs); entry;
entry = entry->next) {