summaryrefslogtreecommitdiff
path: root/src/usersmtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usersmtp.c')
-rw-r--r--src/usersmtp.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/usersmtp.c b/src/usersmtp.c
index b29495c3ae7f..23278b0b59d7 100644
--- a/src/usersmtp.c
+++ b/src/usersmtp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2006, 2008 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2006, 2008, 2009 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: usersmtp.c,v 8.472 2008/01/31 18:48:29 ca Exp $")
+SM_RCSID("@(#)$Id: usersmtp.c,v 8.473 2009/06/17 17:26:51 ca Exp $")
#include <sysexits.h>
@@ -1568,7 +1568,9 @@ attemptauth(m, mci, e, sai)
sasl_interact_t *client_interact = NULL;
char *mechusing;
sasl_security_properties_t ssp;
- char in64[MAXOUTLEN];
+
+ /* MUST NOT be a multiple of 4: bug in some sasl_encode64() versions */
+ char in64[MAXOUTLEN + 1];
#if NETINET || (NETINET6 && SASL >= 20000)
extern SOCKADDR CurHostAddr;
#endif /* NETINET || (NETINET6 && SASL >= 20000) */
@@ -1770,7 +1772,8 @@ attemptauth(m, mci, e, sai)
}
else
{
- saslresult = sasl_encode64(out, outlen, in64, MAXOUTLEN, NULL);
+ saslresult = sasl_encode64(out, outlen, in64, sizeof(in64),
+ NULL);
if (saslresult != SASL_OK) /* internal error */
{
if (LogLevel > 8)
@@ -1837,7 +1840,7 @@ attemptauth(m, mci, e, sai)
if (outlen > 0)
{
saslresult = sasl_encode64(out, outlen, in64,
- MAXOUTLEN, NULL);
+ sizeof(in64), NULL);
if (saslresult != SASL_OK)
{
/* give an error reply to the other side! */