aboutsummaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2021-05-26 12:09:03 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2021-05-26 12:10:52 +0000
commit56643aaceb50afe06f1fb942110851fc3b3b0e0c (patch)
treee9e171620b67af6346be0727f7565435503ec2e1 /mail
parenta18614e34210bbe14aac2bb4eb39e229c0b9c707 (diff)
downloadports-56643aaceb50afe06f1fb942110851fc3b3b0e0c.tar.gz
ports-56643aaceb50afe06f1fb942110851fc3b3b0e0c.zip
mail/mlmmj: fully handle X-Original-From
This update to the initial patch makes sure, the sender receives a denial email even if the from has been munged
Diffstat (limited to 'mail')
-rw-r--r--mail/mlmmj/Makefile2
-rw-r--r--mail/mlmmj/files/patch-originalfromemail47
2 files changed, 42 insertions, 7 deletions
diff --git a/mail/mlmmj/Makefile b/mail/mlmmj/Makefile
index 66df2a11315d..292636766d0d 100644
--- a/mail/mlmmj/Makefile
+++ b/mail/mlmmj/Makefile
@@ -2,7 +2,7 @@
PORTNAME= mlmmj
PORTVERSION= 1.3.0
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= mail
MASTER_SITES= http://mlmmj.org/releases/
diff --git a/mail/mlmmj/files/patch-originalfromemail b/mail/mlmmj/files/patch-originalfromemail
index 0de3300936d0..4ee0b485e3a2 100644
--- a/mail/mlmmj/files/patch-originalfromemail
+++ b/mail/mlmmj/files/patch-originalfromemail
@@ -1,5 +1,5 @@
diff --git src/mlmmj-process.c src/mlmmj-process.c
-index 82e4d04..0362c7b 100644
+index 82e4d04..fee5603 100644
--- src/mlmmj-process.c
+++ src/mlmmj-process.c
@@ -473,6 +473,7 @@ int main(int argc, char **argv)
@@ -30,15 +30,50 @@ index 82e4d04..0362c7b 100644
/* discard malformed mail with invalid From: unless it's a bounce */
if(fromemails.emailcount != 1 &&
(recipextra == NULL ||
-@@ -1047,7 +1054,10 @@ int main(int argc, char **argv)
+@@ -1036,7 +1043,10 @@ int main(int argc, char **argv)
+ if(!send && (subonlypost || modonlypost || modnonsubposts)) {
+ /* Don't send a mail about denial to the list, but silently
+ * discard and exit. */
+- if (strcasecmp(listaddr, posteraddr) == 0) {
++ char *testaddr = posteraddr;
++ if (originalfromemails.emailcount > 0)
++ testaddr = originalfromemails.emaillist[0];
++ if (strcasecmp(listaddr, testaddr) == 0) {
+ log_error(LOG_ARGS, "Discarding %s because"
+ " there are sender restrictions but"
+ " From: was the list address",
+@@ -1047,10 +1057,10 @@ int main(int argc, char **argv)
exit(EXIT_SUCCESS);
}
if(subonlypost) {
- foundaddr = (is_subbed(listdir, posteraddr, 0) !=
-+ char *testaddr;
-+ if (originalfromemails.emailcount > 0)
-+ testaddr = originalfromemails.emaillist[0];
+ foundaddr = (is_subbed(listdir, testaddr, 0) !=
SUB_NONE);
} else if (modonlypost) {
- foundaddr = is_moderator(listdir, posteraddr, NULL);
+- foundaddr = is_moderator(listdir, posteraddr, NULL);
++ foundaddr = is_moderator(listdir, testaddr, NULL);
+ }
+ if(!foundaddr) {
+ if(modnonsubposts) {
+@@ -1086,10 +1096,10 @@ int main(int argc, char **argv)
+ }
+ MY_ASSERT(txt);
+ register_unformatted(txt, "subject", subject);
+- register_unformatted(txt, "posteraddr", posteraddr);
++ register_unformatted(txt, "posteraddr", testaddr);
+ register_originalmail(txt, donemailname);
+ queuefilename = prepstdreply(txt, listdir,
+- "$listowner$", posteraddr, NULL);
++ "$listowner$", testaddr, NULL);
+ MY_ASSERT(queuefilename)
+ close_text(txt);
+ myfree(listaddr);
+@@ -1101,7 +1111,7 @@ int main(int argc, char **argv)
+ execlp(mlmmjsend, mlmmjsend,
+ "-L", listdir,
+ "-l", "1",
+- "-T", posteraddr,
++ "-T", testaddr,
+ "-F", fromaddr,
+ "-m", queuefilename, (char *)NULL);
+