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:
Todd C. Miller
2022-06-21 09:54:41 -06:00
parent 33547702f3
commit e9c2695268

View File

@@ -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;