]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-login: Fix leaking settings instance memory
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 29 Jan 2025 08:17:46 +0000 (10:17 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:16 +0000 (12:34 +0200)
src/imap-login/imap-login-client.c
src/imap-login/imap-login-client.h

index f7b76e83275f2a2e6082f77a0682540a033fa671..90bc70127c1d7ab315b9b3fcb8d34ec400e5effe 100644 (file)
@@ -387,6 +387,7 @@ static int imap_client_create(struct client *client)
        if (set_instance == NULL) {
                set_instance = settings_instance_new(
                        master_service_get_settings_root(master_service));
+               imap_client->set_instance = set_instance;
                event_set_ptr(client->event, SETTINGS_EVENT_INSTANCE, set_instance);
        }
 
@@ -419,6 +420,7 @@ static void imap_client_destroy(struct client *client)
        }
 
        settings_free(imap_client->set);
+       settings_instance_free(&imap_client->set_instance);
        i_free_and_null(imap_client->proxy_backend_capability);
        imap_parser_unref(&imap_client->parser);
 }
index d23aebab0fde3dce1b9489ec2467f619eef498c6..a62d30445a2a5f7bcdd1aadc7fc55041a72e9057 100644 (file)
@@ -55,6 +55,7 @@ struct imap_client {
        struct client common;
 
        const struct imap_login_settings *set;
+       struct settings_instance *set_instance;
        struct imap_parser *parser;
        char *proxy_backend_capability;