From: Aki Tuomi Date: Tue, 19 Sep 2023 11:50:39 +0000 (+0300) Subject: lib-auth-client: Do not crash if auth server is unexpectedly lost X-Git-Tag: 2.4.0~2513 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=623a67e9a01cb038d2e72abacbcb36f0412eb1ef;p=thirdparty%2Fdovecot%2Fcore.git lib-auth-client: Do not crash if auth server is unexpectedly lost --- diff --git a/src/lib-auth-client/auth-client-request.c b/src/lib-auth-client/auth-client-request.c index e7248caa4a..7a1c717ca6 100644 --- a/src/lib-auth-client/auth-client-request.c +++ b/src/lib-auth-client/auth-client-request.c @@ -284,6 +284,12 @@ void auth_client_request_continue(struct auth_client_request *request, struct const_iovec iov[3]; const char *prefix; + if (!request->conn->connected) { + e_error(request->event, + "Error sending continue request to auth server: connection lost"); + return; + } + prefix = t_strdup_printf("CONT\t%u\t", request->id); iov[0].iov_base = prefix; @@ -368,6 +374,11 @@ void auth_client_request_server_input(struct auth_client_request *request, void auth_client_send_cancel(struct auth_client *client, unsigned int id) { + if (!client->conn->connected) { + e_error(client->conn->conn.event, + "Error sending request to auth server: connection lost"); + return; + } const char *str = t_strdup_printf("CANCEL\t%u\n", id); if (o_stream_send_str(client->conn->conn.output, str) < 0) {