res_timing: Don't close FD 0 when out of open files.
This fixes so a failure to get a timer file descriptor does not cascade to closing FD 0. On error, both res_timing_kqueue and res_timing_timerfd would call the destructor before setting the file handle. The file handle had been initialized to 0, causing FD 0 to be closed. This in turn, resulted in floods of "CLI>" messages and an unusable terminal. ASTERISK-19277 #close Reported by: Barry Chern For the master branch, this was already fixed. This patch only ensures that we do not attempt to close a negative file descriptor. Change-Id: I147d7e33726c6e5a2751928d56561494f5800350
This commit is contained in:
parent
c12ace3ab3
commit
3fab8212e3
|
@ -159,7 +159,9 @@ static void timer_destroy(void *obj)
|
|||
struct kqueue_timer *timer = obj;
|
||||
ast_debug(5, "[%d]: Timer Destroy\n", timer->handle);
|
||||
kqueue_timer_fini_continuous_event(timer);
|
||||
close(timer->handle);
|
||||
if (timer->handle > -1) {
|
||||
close(timer->handle);
|
||||
}
|
||||
}
|
||||
|
||||
static void *kqueue_timer_open(void)
|
||||
|
|
|
@ -76,8 +76,9 @@ struct timerfd_timer {
|
|||
static void timer_destroy(void *obj)
|
||||
{
|
||||
struct timerfd_timer *timer = obj;
|
||||
|
||||
close(timer->fd);
|
||||
if (timer->fd > -1) {
|
||||
close(timer->fd);
|
||||
}
|
||||
}
|
||||
|
||||
static void *timerfd_timer_open(void)
|
||||
|
|
Loading…
Reference in New Issue