Fixes a new assert-crash caused by
9aaf0554aeae4f8056eeef56cfd99bf386f4c009:
Panic: file sasl-server.c: line 357 (authenticate_callback): assertion failed: (!client->authenticating)
This was caused by a code path:
- sasl_server_check_login()
- sasl_server_auth_failed()
- sasl_server_auth_cancel()
- call_client_callback()
- sasl_callback()
- client_auth_failed()
- client_input()
- another AUTHENTICATE/LOGIN was read
The solution is then to not call client_input() directly. It would have
also worked to just remove the assert though, but this fix is cleaner.
if (!client_does_custom_io(client)) {
client->io = io_add(client->fd, IO_READ, client_input, client);
- client_input(client);
+ io_set_pending(client->io);
}
}