Majordomo broken after perl upgrade (patch included)

frop

New member
Joined
May 9, 2013
Messages
2
Hi all,

We've recently upgraded our server to Debian 7 (Wheezy) with DA 1.43. After the upgrade, majordomo stopped working for some of our mailing lists. This is because of the incompatibility of the new perl version (now Perl5.14)

We were able to narrow the problem down to the use of restrict_post, which results in the mail server silently dropping the mail (BAD imho):
2013-05-09 14:50:18 1UaQIc-0003lP-7P <= <> R=1UaQIc-0003lN-6L U=mail P=local S=1741 T="Mail failure - no recipient addresses" from <> for owner-testlist@xxxxxxx​

Reason lies in majordomo.pl, which cannot make the match between the sender and the subscribers:
addr_match: enter
addr_match: comparing Stijn de Bekker <[email protected]> against [email protected]
addr_match: enter
[…]
/etc/virtual/majordomo/resend: sender check: ' Non-member submission from [Stijn de Bekker <[email protected]>] '​

Root cause was found in main'ParseAddrs, that incorrectly uses $_ [1]
Attached is a patch that fixes this problem.

Hope this helps you too,
Stijn.

[1] Bug was identified in 2010 by Todd Kover: http://mail-index.netbsd.org/pkgsrc-bugs/2010/10/15/msg039977.html
 

Attachments

  • majordomo.patch.txt
    565 bytes · Views: 130
Thanks for the report and supplied patch. Fixed in the installer for the next release of DA:
http://www.directadmin.com/features.php?id=1447

For existing systems, run this:
Code:
cd /etc/virtual/majordomo
wget -O majordomo.patch http://files1.directadmin.com/services/all/majordomo/majordomo.patch
patch -p0 < majordomo.patch

John
 
Will the patch also work with older versions of Perl, or must we make sure we upgrade Perl at the same time we install this page?

Thanks.

Jeff
 
After installing the patch, the owner of majordomo.pl changes from majordomo:daemon to root:daemon.

I presume this has to be set back to majordomo:daemon again?
If yes, maybe you might need to adjust the majordomo.sh to do this too?
 
I haven't applied the patch yet, but looking at the changes, there is no reason to believe it will not work on older versions of Perl. It just uses a named variable in place of the Perl's current variables (i.e. $_ and @_), I am guessing the newer version of Perl changed a behavior that majordomo took advantage of.
 
Back
Top