aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mailutils/sendmail.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/mailutils/sendmail.c b/mailutils/sendmail.c
index defbd9552..4ca91fad8 100644
--- a/mailutils/sendmail.c
+++ b/mailutils/sendmail.c
@@ -150,7 +150,13 @@ static char *sane_address(char *str)
trim(str);
s = str;
while (*s) {
- if (!isalnum(*s) && !strchr("+_-.@", *s)) {
+ /* Standard allows these chars in username without quoting:
+ * /!#$%&'*+-=?^_`{|}~
+ * and allows dot (.) with some restrictions.
+ * I chose to only allow a saner subset.
+ * I propose to expand it only on user's request.
+ */
+ if (!isalnum(*s) && !strchr("=+_-.@", *s)) {
bb_error_msg("bad address '%s'", str);
/* returning "": */
str[0] = '\0';