diff options
author | Walter Doekes <walter+asterisk@wjd.nu> | 2015-07-02 11:57:44 +0200 |
---|---|---|
committer | Walter Doekes <walter+asterisk@wjd.nu> | 2015-07-02 12:10:22 +0200 |
commit | f4dd9560cf6a50621172c34c2d9887041aaf8a3a (patch) | |
tree | dcb29ef92c2e3259db236b9adaf69ecbd7ab15f2 /res/res_timing_kqueue.c | |
parent | 69bfa518a02cbd69b364e5b0a500fc160e7b285d (diff) |
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 13 branch, this was already fixed. This patch only ensures that
we do not attempt to close a negative file descriptor.
Change-Id: I147d7e33726c6e5a2751928d56561494f5800350
Diffstat (limited to 'res/res_timing_kqueue.c')
-rw-r--r-- | res/res_timing_kqueue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_timing_kqueue.c b/res/res_timing_kqueue.c index 17f98360e..d46f7f3d6 100644 --- a/res/res_timing_kqueue.c +++ b/res/res_timing_kqueue.c @@ -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) |