[sofia-sip] Fix memory leak when a tcp connection gives POLLERR due to RST.

This commit is contained in:
Andrey Volk 2019-11-08 19:00:59 +04:00
parent 0af811bb24
commit 8126d1f482
2 changed files with 11 additions and 3 deletions

View File

@ -1 +1 @@
Tue Oct 08 10:50:11 CDT 2019
Fri Nov 08 08:54:20 CDT 2019

View File

@ -2767,6 +2767,7 @@ static int tport_wakeup_pri(su_root_magic_t *m, su_wait_t *w, tport_t *self)
int tport_wakeup(su_root_magic_t *magic, su_wait_t *w, tport_t *self)
{
int events = su_wait_events(w, self->tp_socket);
int error;
#if HAVE_POLL
assert(w->fd == self->tp_socket);
@ -2781,9 +2782,16 @@ int tport_wakeup(su_root_magic_t *magic, su_wait_t *w, tport_t *self)
self->tp_closed ? " (closed)" : ""));
if (self->tp_pri->pri_vtable->vtp_wakeup)
return self->tp_pri->pri_vtable->vtp_wakeup(self, events);
error = self->tp_pri->pri_vtable->vtp_wakeup(self, events);
else
return tport_base_wakeup(self, events);
error = tport_base_wakeup(self, events);
if (tport_is_closed(self)) {
SU_DEBUG_9(("%s(%p): tport is closed! Setting secondary timer!\n", "tport_wakeup", (void *)self));
tport_set_secondary_timer(self);
}
return error;
}
static int tport_base_wakeup(tport_t *self, int events)