Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

smfi_getpriv returns NULL

2006-06-28 by Wolf, Brian

I'm trying to get started with milter-greylist 2.0.2.  It worked okay
for a few test messages, but when I run it in production, it quickly
aborts, usually within a minute or two.  

The discussions of crashes I've found on this list seem to involve
either the use of the SPF option or bad macro definitions.  I did not
build it with the SPF option.  I have tried various sets of macro
definitions- those straight out of the README, the ones created by the
.m4 feature file, and those from the snert.com posting.  Same results in
all cases. 

I ran it in non-daemon mode and found that it was dying with a
segmentation fault.  I added some syslog statements to the distribution
source and found that it was dying in mlfi_envfrom because the call to
smfi_getpriv was returning a NULL value for priv, and then faulting when
it tried to assign priv->priv_queueid on the next statement.  It
sometimes happens in mlfi_envrcpt, too.

I also checked the return status from the smfi_setpriv calls but did not
get any MI_FAILURE results.  And I haven't seen any errors on the malloc
in mlfi_connect.

I have included some 

For now, I have just added a line after each call to smfi_getpriv to
return with SMFIS_CONTINUE if smfi_getpriv returns a NULL, and it seems
to be working.  But is this a problem others have encountered, and if
so, is there a resolution for it?  

My environment is a dual-processor RedHat AS3 system with the
2.4.21-40.Elsmp kernel and sendmail 8.12.11.  This is the only milter in
use.  Except for the debug syslog statements, I am using the 2.0.2
source.straight from the tarball and building with gcc 3.2.3.


- Brian


Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_connect: at start     -
ctx = 164608872
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_connect: after malloc -
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_connect: after setpriv-
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_envfrom: at start     -
ctx = 164608872  noauth 1  nospf 1
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_envfrom: after getpriv-
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_envfrom: get queueid  -
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_envfrom: got queueid  -
ctx = 164608872  priv = 164628488  queueid k5SLl5MX027474
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_envrcpt: after getpriv-
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_close  : at start     -
ctx = 164608872
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_close  : dealloc priv -
ctx = 164608872  priv = 164628488
Jun 28 16:47:05 ig3net58 milter-greylist: mlfi_close  : set priv NULL-
ctx = 164608872
Jun 28 16:47:10 ig3net58 milter-greylist: mlfi_envfrom: at start     -
ctx = 164608872  noauth 1  nospf 1
Jun 28 16:47:10 ig3net58 milter-greylist: mlfi_envfrom: after getpriv-
ctx = 164608872  priv = 0
Jun 28 16:47:10 ig3net58 milter-greylist: mlfi_envfrom: NULL PRIV!   -
ctx = 164608872

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.