dovecot-2.2: lmtp: Memory leak fixes on handling some RCPT TO fa...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Dec 8 08:17:30 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/f979ca66a758
changeset: 19485:f979ca66a758
user: Timo Sirainen <tss at iki.fi>
date: Tue Dec 08 10:17:10 2015 +0200
description:
lmtp: Memory leak fixes on handling some RCPT TO failures.
diffstat:
src/lmtp/commands.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diffs (35 lines):
diff -r 46a35dcdb936 -r f979ca66a758 src/lmtp/commands.c
--- a/src/lmtp/commands.c Mon Dec 07 21:09:47 2015 +0200
+++ b/src/lmtp/commands.c Tue Dec 08 10:17:10 2015 +0200
@@ -686,6 +686,7 @@
client_send_line(client, "451 4.3.0 <%s> "
"Can't handle mixed proxy/non-proxy destinations",
address);
+ mail_storage_service_user_free(&rcpt->service_user);
return 0;
}
@@ -693,15 +694,16 @@
rcpt->address = p_strdup(client->state_pool, address);
rcpt->detail = p_strdup(client->state_pool, detail);
- if ((ret = lmtp_rcpt_to_is_over_quota(client, rcpt)) < 0) {
- client_send_line(client, ERRSTR_TEMP_MAILBOX_FAIL,
- rcpt->address);
+ if ((ret = lmtp_rcpt_to_is_over_quota(client, rcpt)) != 0) {
+ if (ret < 0) {
+ client_send_line(client, ERRSTR_TEMP_MAILBOX_FAIL,
+ rcpt->address);
+ }
+ mail_storage_service_user_free(&rcpt->service_user);
return 0;
}
- if (ret == 0) {
- array_append(&client->state.rcpt_to, &rcpt, 1);
- client_send_line(client, "250 2.1.5 OK");
- }
+ array_append(&client->state.rcpt_to, &rcpt, 1);
+ client_send_line(client, "250 2.1.5 OK");
if (client->lmtp_set->lmtp_user_concurrency_limit > 0) {
const char *query = t_strconcat("LOOKUP\t",
More information about the dovecot-cvs
mailing list