mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
tevent: Clarify apparently useless conditions
Comment on two similar conditions in tevent_standard.c, which, otherwise, at a first glance, seem useless, i.e. always true. The conditions checking glue->epoll_ops for being non-NULL, imply that it *can* be NULL. A casual reader would not generally expect a "member" function to modify its container's pointer in a container higher up, and would assume that glue->epoll_ops could be NULL before the call, resulting in a near-NULL pointer dereference. However, in this case epoll_ops is indeed cleared in those "member" functions, in the case of an epoll interface failure, to signify fallback to poll interface. Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org> Autobuild-User(master): Uri Simchoni <uri@samba.org> Autobuild-Date(master): Tue Jul 12 13:56:41 CEST 2016 on sn-devel-144
This commit is contained in:
parent
792f89cdb6
commit
9d29593d92
@ -112,6 +112,11 @@ static int std_event_loop_once(struct tevent_context *ev, const char *location)
|
||||
int ret;
|
||||
|
||||
ret = glue->epoll_ops->loop_once(ev, location);
|
||||
/*
|
||||
* If the above hasn't panicked due to an epoll interface failure,
|
||||
* std_fallback_to_poll() wasn't called, and hasn't cleared epoll_ops to
|
||||
* signify fallback to poll_ops.
|
||||
*/
|
||||
if (glue->epoll_ops != NULL) {
|
||||
/* No fallback */
|
||||
return ret;
|
||||
@ -138,6 +143,11 @@ static int std_event_loop_wait(struct tevent_context *ev, const char *location)
|
||||
int ret;
|
||||
|
||||
ret = glue->epoll_ops->loop_wait(ev, location);
|
||||
/*
|
||||
* If the above hasn't panicked due to an epoll interface failure,
|
||||
* std_fallback_to_poll() wasn't called, and hasn't cleared epoll_ops to
|
||||
* signify fallback to poll_ops.
|
||||
*/
|
||||
if (glue->epoll_ops != NULL) {
|
||||
/* No fallback */
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user