fix: double free when ref < 0

This commit is contained in:
Renge 2022-05-06 14:53:13 -04:00
parent 9392eecab1
commit b7894f10ca

View File

@ -92,7 +92,7 @@ void tu_unref(TU *tu, char *reason) {
pthread_mutex_lock(&tu->mutex);
// debug(reason);
tu->ref --;
if (tu->ref <= 0)
if (tu->ref == 0)
tu_destroy(tu);
else
pthread_mutex_unlock(&tu->mutex);
@ -419,7 +419,7 @@ int tu_hangup(TU *tu) {
tu->chat_TU = NULL;
tu->ref --;
tu->chat_locked = 0;
if (tu->ref <= 0)
if (tu->ref == 0)
tu_destroy(tu);
else
pthread_mutex_unlock(&tu->mutex);
@ -456,7 +456,7 @@ int tu_hangup(TU *tu) {
tu->chat_TU = NULL;
tu->ref --;
tu->chat_locked = 0;
if (tu->ref <= 0)
if (tu->ref == 0)
tu_destroy(tu);
else
pthread_mutex_unlock(&tu->mutex);