intercept_write: remove unused CD_USE_PTRACE code.
It is not possible to end up in intercept_write when CD_USE_PTRACE is set.
This commit is contained in:
@@ -872,38 +872,33 @@ intercept_write(int fd, struct intercept_closure *closure)
|
|||||||
closure->len = 0;
|
closure->len = 0;
|
||||||
closure->off = 0;
|
closure->off = 0;
|
||||||
|
|
||||||
if (ISSET(closure->details->flags, CD_USE_PTRACE)) {
|
switch (closure->state) {
|
||||||
/* Ready for the next policy check from the tracer. */
|
case RECV_HELLO_INITIAL:
|
||||||
closure->state = RECV_POLICY_CHECK;
|
/* Re-use event for the listener. */
|
||||||
} else {
|
close(fd);
|
||||||
switch (closure->state) {
|
rc = sudo_ev_set(&closure->ev, closure->listen_sock,
|
||||||
case RECV_HELLO_INITIAL:
|
SUDO_EV_READ|SUDO_EV_PERSIST, intercept_accept_cb, closure);
|
||||||
/* Re-use event for the listener. */
|
if (rc == -1 || sudo_ev_add(evbase, &closure->ev, NULL, false) == -1) {
|
||||||
close(fd);
|
sudo_warn("%s", U_("unable to add event to queue"));
|
||||||
rc = sudo_ev_set(&closure->ev, closure->listen_sock,
|
goto done;
|
||||||
SUDO_EV_READ|SUDO_EV_PERSIST, intercept_accept_cb, closure);
|
|
||||||
if (rc == -1 || sudo_ev_add(evbase, &closure->ev, NULL, false) == -1) {
|
|
||||||
sudo_warn("%s", U_("unable to add event to queue"));
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
closure->listen_sock = -1;
|
|
||||||
closure->state = RECV_CONNECTION;
|
|
||||||
accept_closure = closure;
|
|
||||||
break;
|
|
||||||
case POLICY_ACCEPT:
|
|
||||||
/* Re-use event to read InterceptHello from sudo_intercept.so ctor. */
|
|
||||||
rc = sudo_ev_set(&closure->ev, fd, SUDO_EV_READ|SUDO_EV_PERSIST,
|
|
||||||
intercept_cb, closure);
|
|
||||||
if (rc == -1 || sudo_ev_add(evbase, &closure->ev, NULL, false) == -1) {
|
|
||||||
sudo_warn("%s", U_("unable to add event to queue"));
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
closure->state = RECV_HELLO;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* Done with this connection. */
|
|
||||||
intercept_connection_close(closure);
|
|
||||||
}
|
}
|
||||||
|
closure->listen_sock = -1;
|
||||||
|
closure->state = RECV_CONNECTION;
|
||||||
|
accept_closure = closure;
|
||||||
|
break;
|
||||||
|
case POLICY_ACCEPT:
|
||||||
|
/* Re-use event to read InterceptHello from sudo_intercept.so ctor. */
|
||||||
|
rc = sudo_ev_set(&closure->ev, fd, SUDO_EV_READ|SUDO_EV_PERSIST,
|
||||||
|
intercept_cb, closure);
|
||||||
|
if (rc == -1 || sudo_ev_add(evbase, &closure->ev, NULL, false) == -1) {
|
||||||
|
sudo_warn("%s", U_("unable to add event to queue"));
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
closure->state = RECV_HELLO;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* Done with this connection. */
|
||||||
|
intercept_connection_close(closure);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = true;
|
ret = true;
|
||||||
|
Reference in New Issue
Block a user