summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2016-01-27 23:37:58 +0200
committerOle Troan <ot@cisco.com>2016-01-27 23:37:58 +0200
commit4b12b3c35ae6fb7941ba82599f9eb564f5439427 (patch)
tree01631c4e0f61cff110f28a74497f93bbeceb2e03
parentefe710fe56f9dc6117f5777dc1f9dbd6748352e4 (diff)
CLI: If an error happens on the socket being polled, then the CLI
does not close the socket. Resulting in the main thread being stuck in a tight infinite loop polling on the erronous socket. Change-Id: I630b84b97c059acce117d56e41cd201131db4cab Signed-off-by: Ole Troan <ot@cisco.com>
-rw-r--r--vlib/vlib/unix/input.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/vlib/vlib/unix/input.c b/vlib/vlib/unix/input.c
index ea10e4fc354..f9d7feceeb5 100644
--- a/vlib/vlib/unix/input.c
+++ b/vlib/vlib/unix/input.c
@@ -195,6 +195,8 @@ linux_epoll_input (vlib_main_t * vm,
errors[n_errors] = f->error_function (f);
n_errors += errors[n_errors] != 0;
}
+ else
+ close(f->file_descriptor);
}
ASSERT (n_errors < ARRAY_LEN (errors));