]> git.ipfire.org Git - thirdparty/git.git/commitdiff
imap-send: fix bug causing cfg->folder being set to NULL
authorAditya Garg <gargaditya08@live.com>
Fri, 20 Jun 2025 06:40:24 +0000 (12:10 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Jun 2025 15:11:16 +0000 (08:11 -0700)
6d1f198f34 (imap-send: fix leaking memory in `imap_server_conf`, 2024-06-07)
resulted a change in static int git_imap_config which resulted in cfg->folder
being incorrectly set to NULL in case imap.user, imap.pass, imap.tunnel and
imap.authmethod were defined. Because of this, since Git 2.46.0,
git-imap-send is not usable at all. The bug seems to have been unnoticed for
a long time, likely due to better options like git-send-email.

Signed-off-by: Aditya Garg <gargaditya08@live.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
imap-send.c

index 27dc033c7f8e33afe69076b3d4f8ef91d35ee109..37f94a37e80aaf74d75fc8a1e2e6e54baf1af66f 100644 (file)
@@ -1316,16 +1316,16 @@ static int git_imap_config(const char *var, const char *val,
                FREE_AND_NULL(cfg->folder);
                return git_config_string(&cfg->folder, var, val);
        } else if (!strcmp("imap.user", var)) {
-               FREE_AND_NULL(cfg->folder);
+               FREE_AND_NULL(cfg->user);
                return git_config_string(&cfg->user, var, val);
        } else if (!strcmp("imap.pass", var)) {
-               FREE_AND_NULL(cfg->folder);
+               FREE_AND_NULL(cfg->pass);
                return git_config_string(&cfg->pass, var, val);
        } else if (!strcmp("imap.tunnel", var)) {
-               FREE_AND_NULL(cfg->folder);
+               FREE_AND_NULL(cfg->tunnel);
                return git_config_string(&cfg->tunnel, var, val);
        } else if (!strcmp("imap.authmethod", var)) {
-               FREE_AND_NULL(cfg->folder);
+               FREE_AND_NULL(cfg->auth_method);
                return git_config_string(&cfg->auth_method, var, val);
        } else if (!strcmp("imap.port", var)) {
                cfg->port = git_config_int(var, val, ctx->kvi);