fix: double free when ref < 0
This commit is contained in:
parent
9392eecab1
commit
b7894f10ca
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user