imap-send: fix bug causing cfg->folder being set to NULL
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>
Aditya Garg committed
Jun 20, 2025 at 12:10 UTC
44ba4b0bbb1a342659ca93d9ba6f475fbf9cff99
1 file changed
+4
-4
imap-send.c
+4
-4
@@ -1316,16 +1316,16 @@ static int git_imap_config(const char *var, const char *val,
1316
FREE_AND_NULL(cfg->folder);
1317
return git_config_string(&cfg->folder, var, val);
1318
} else if (!strcmp("imap.user", var)) {
1319
- FREE_AND_NULL(cfg->folder);
1319
+ FREE_AND_NULL(cfg->user);
1320
return git_config_string(&cfg->user, var, val);
1321
} else if (!strcmp("imap.pass", var)) {
1322
- FREE_AND_NULL(cfg->folder);
1322
+ FREE_AND_NULL(cfg->pass);
1323
return git_config_string(&cfg->pass, var, val);
1324
} else if (!strcmp("imap.tunnel", var)) {
1325
- FREE_AND_NULL(cfg->folder);
1325
+ FREE_AND_NULL(cfg->tunnel);
1326
return git_config_string(&cfg->tunnel, var, val);
1327
} else if (!strcmp("imap.authmethod", var)) {
1328
- FREE_AND_NULL(cfg->folder);
1328
+ FREE_AND_NULL(cfg->auth_method);
1329
return git_config_string(&cfg->auth_method, var, val);
1330
} else if (!strcmp("imap.port", var)) {
1331
cfg->port = git_config_int(var, val, ctx->kvi);