diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/src/smtp_in.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index 93d5cece3..b6d530f93 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -5036,6 +5036,10 @@ while (done <= 0) case RCPT_CMD: HAD(SCH_RCPT); + /* We got really to many recipients. A check against configured + limits is done later */ + if (rcpt_count < 0 || rcpt_count >= INT_MAX/2) + log_write(0, LOG_MAIN|LOG_PANIC_DIE, "Too many recipients: %d", rcpt_count); rcpt_count++; was_rcpt = fl.rcpt_in_progress = TRUE; @@ -5192,7 +5196,7 @@ while (done <= 0) /* Check maximum allowed */ - if (rcpt_count > recipients_max && recipients_max > 0) + if (rcpt_count+1 < 0 || rcpt_count > recipients_max && recipients_max > 0) { if (recipients_max_reject) { |