summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/src/smtp_in.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c
index b48870d26..0b6733673 100644
--- a/src/src/smtp_in.c
+++ b/src/src/smtp_in.c
@@ -5014,6 +5014,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;
@@ -5170,7 +5174,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)
{