[Greylist-users] Error: Attempt to free unreferenced scalar (relaydelay-0.4)

Harald Hutter hutter at ihs.ac.at
Fri Feb 6 03:13:30 PST 2004


Hi all,

I know this was already posted on this list, but I couldn't find a solution
working for me in the archives.
I try to use relaydelay-0.4, but I always get the error message:
Attempt to free unreferenced scalar at /usr/local/sbin/relaydelay.pl line 432.

I also looked at the cvs sources (see below), but if possible I prefer using 
released code.
Note that I have to run relaydelay not as root, as I have a 
dual sendmail setup with amavisd-new and spamassassin. 

relaydelay-0.4, should running as user "smmsp" as this is the user the
receving MTA is run as. (rx sendmail instance passes mail to amavisd-new,
setup works without relaydelay)

Here is the verbose output:
mailhost:~/relaydelay-0.04 # su -l smmsp -c 'perl -w 
/usr/local/sbin/relaydelay.pl'
Loading Config File: /etc/mail/relaydelay.conf
Using connection 'local:/var/run/relaydelay/relaydelay.sock' for filter 
relaydelay
DBI Connecting to DBI:mysql:database=relaydelay:host=dbhost:port=3306
Starting Sendmail::Milter 0.18 engine.

=== 2004-02-06 11:03:41 ===
Stored Sender: <hutter at mailhost.ihs.ac.at>
Passed Recipient: <hutter at mailhost.ihs.ac.at>
Attempt to free unreferenced scalar at /usr/local/sbin/relaydelay.pl line 432.

NOTE: I changed the socket location to /var/run/relaydelay/ to prevent
sendmail from complaining about  "local socket name /var/run/relaydelay.sock 
unsafe" (directory relaydelay is owned by smmsp user). I also changed line 
432 in relaydelay.pl from:
$ctx->setpriv(undef);
to:
$ctx->setpriv(undef) if (defined $privdata_ref);
I did grab this from the cvs source, but it didn't change anything!

In /var/log/messages I got the following entry:
Feb  6 11:03:42 mailhost perl: relaydelay: private data not NULL

Here are the Details of my setup:

OS: SuSe Linux 9.0
uname -a
Linux mailhost 2.4.21-144-default #1 Fri Nov 14 00:01:36 UTC 2003 i686 i686 
i386 GNU/Linux
------
Perl: perl -v
This is perl, v5.8.1 built for i586-linux-thread-multi
-----
Sendmail: sendmail -d0.1 -bp
Version 8.12.10
 Compiled with: DNSMAP EGD LDAPMAP LOG MAP_REGEX MATCHGECOS MILTER
                MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6 NETUNIX NEWDB 
NIS
                NISPLUS PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS USERDB
                USE_LDAP_INIT
------
Sendmail-Milter-0.18
------
And on dbhost (same OS like on mailhost):
MySQl:
Server version          4.0.15-Max-log
Protocol version        10
------


If I add the following line after line 427 (my $ctx = shift;):
print "  IN ABORT CALLBACK: " . $ctx . "\n" if ($verbose);
I get the following:

=== 2004-02-06 10:58:00 ===
Stored Sender: <hutter at mailhost.ihs.ac.at>
Passed Recipient: <hutter at mailhost.ihs.ac.at>
  IN ABORT CALLBACK: Sendmail::Milter::Context=SCALAR(0x83b9bc8)
Attempt to free unreferenced scalar at /usr/local/sbin/relaydelay.pl line 433.
Feb  6 10:58:01 mailhost perl: relaydelay: private data not NULL


Sorry for the long email, any help will be appreciated.
Harald


More information about the Greylist-users mailing list