diff --git a/daemon/ssrc.c b/daemon/ssrc.c index b4a06c0a0..a87a05c93 100644 --- a/daemon/ssrc.c +++ b/daemon/ssrc.c @@ -227,6 +227,8 @@ void *get_ssrc_full(uint32_t ssrc, struct ssrc_hash *ht, bool *created) { while (G_UNLIKELY(ht->nq.length > MAX_SSRC_ENTRIES)) { GList *link = g_queue_pop_tail_link(&ht->nq); struct ssrc_entry *old_ent = link->data; + if (old_ent->obj.ref != 1) + break; ilog(LOG_DEBUG, "SSRC hash table exceeded size limit (trying to add %s%x%s) - " "deleting SSRC %s%x%s", FMT_M(ssrc), FMT_M(old_ent->ssrc));