Fix: various compat poll/epoll issues
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 5 Jan 2015 21:43:04 +0000 (16:43 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 8 Jan 2015 22:10:42 +0000 (17:10 -0500)
commiteb5043b3d5d7b5bd1417a81de31f9998abd08d6c
tree241fdbc22091ea6afddce5d8a3c4666118b3a62e
parent123fb9edb2c73d110c720f81e28e9f7af10bcc2f
Fix: various compat poll/epoll issues

poll:
- fix two nb_fd off by one in "add",
- simplify array size calculation,
- add error checking,
- compress the content of array before resizing it on "del"
  (out-of-bound memory access issue),
- set wait.nb_fd = 0 when no FD are present in array on wait,
- remove need_realloc flag: this can be checked internally by comparing
  current->alloc_size and wait->alloc_size. Minimize the number of
  duplicated state.

epoll:
- add error checking,
- simplify array size calculation (make it similar to poll),
- Set default size when poll_max_size is 0 within
  compat_epoll_set_max_size(), which allow better error checking
  elsewhere in epoll compat code.

Fixes #747

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Conflicts:
src/common/compat/compat-poll.c
src/common/compat/compat-epoll.c
src/common/compat/compat-poll.c
src/common/compat/poll.h
This page took 0.025922 seconds and 4 git commands to generate.