On Tue, Aug 27, 2019 at 10:30:01PM +0100, Michal Krzysztofowicz wrote:
> Hi again Gilles,
>
> > A possible fix to your issue would be to add ' to the allowed charset in
> > util.c, can you try and see if it is enough to solve your issue ?
>
> If I read the code correctly, the ' is already allowed. valid_localpart()
> inside util.c defines IS_ATEXT macro as below:
>
> #define IS_ATEXT(c) (isalnum((unsigned char)(c)) ||
> strchr(MAILADDR_ALLOWED, (c)))
>
> then MAILADDR_ALLOWED is defined inside smtpd.h as:
>
> #define MAILADDR_ALLOWED "!#$%&'*/?^`{|}~+-=_???
>
> therefore it contains the ' character.
>
> Am I looking at the correct place?
>
can you try the following diff ?
Index: smtpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/smtpd.h,v
retrieving revision 1.636
diff -u -p -r1.636 smtpd.h
--- smtpd.h 11 Sep 2019 04:19:19 -0000 1.636
+++ smtpd.h 16 Sep 2019 18:03:05 -0000
@@ -69,8 +69,7 @@
* potentially dangerous and need to be escaped.
*/
#define MAILADDR_ALLOWED "!#$%&'*/?^`{|}~+-=_"
-#define MAILADDR_ESCAPE "!#$%&'*/?^`{|}~"
-
+#define MAILADDR_ESCAPE "!#$&*?^`{|}"
#define F_STARTTLS 0x01
#define F_SMTPS 0x02
--
Gilles Chehade @poolpOrg
https://www.poolp.org patreon: https://www.patreon.com/gilles