Yahoo Groups archive

Milter-greylist

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

Message

Re: Suggested improvements to dacl processing: what do you prefer?

2009-11-07 by reschauzier

In the course of testing a modification to improve the handling of dacl statements, I noticed the strangest thing. It looks like there is a bug in dkimcheck.c that will prevent dkim from working.

Note this piece of code from the function dkimcheck_error():

  106 		break;
  107 	}
  108 
  109 	if (priv->priv_dkim != DKIM_STAT_OK) {
  110 		(void)dkim_free(priv->priv_dkim);
  111 		priv->priv_dkim = NULL;
  112 	}
  113 
  114 	return retval;
  115 }

Line 109 checks the pointer priv->priv_dkim against an integer value. Since DKIM_STAT_OK equals 0, every time the pointer is not NULL, it will be reset. This is exactly what happens as a message goes through the SMTP stages in milter-greylist. As a result, no message is ever checked for dkim.

The correct code should be:

  109 	if (priv->priv_dkimstat != DKIM_STAT_OK) {

With this change the dkim checking seems to work properly.

Does this really mean no-one was ever able to run a successful DKIM check? Or am I overlooking something?

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.