]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-auth-client: Do not crash if auth server is unexpectedly lost
authorAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 19 Sep 2023 11:50:39 +0000 (14:50 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 19 Oct 2023 18:00:45 +0000 (18:00 +0000)
src/lib-auth-client/auth-client-request.c

index e7248caa4a0f50d5b4650f3c16a3e6282e52808c..7a1c717ca6dc1f246c48998aea53afcf08d85b26 100644 (file)
@@ -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) {