-------- Original-Nachricht --------
> Datum: Thu, 23 Jul 2009 10:07:49 -0700
> Von: "Michael Watkins" <[email protected]>
> An: [email protected]
> Betreff: Re: [Dspam-user] dbspam_train

> On Thu, July 23, 2009 09:56, Steve wrote:
> > But since you have the signature there is no
> > real need to force a training. Calling DSPAM with "--class=spam" and
> > "--source=error" should be enough.
> 
> That should work, indeed used to work, but since moving from 3.8 to the
> current Alpha (as of July 17) --source=error fails for me. Am using
> hashdrv.
> 
> For example if I process a single message (working as root):
> 
>     cat themailmessage | dspam --user global --class=spam --source=error
> --deliver=summary --process --stdout
> 
> Results in zero output at the client; maillog contains:
> 
> Jul 20 09:12:15 bean dspam[44722]: Unable to read from file:
> /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig: No such
> file or directory
> Jul 20 09:12:15 bean dspam[44722]: Signature retrieval for
> '4a64767266215213795745' failed
> Jul 20 09:12:15 bean dspam[44722]: Unable to find a valid signature.
> Aborting.
> Jul 20 09:12:15 bean dspam[44722]: process_message returned error -5.
> dropping message.
> 
> Note the first error message, and note that there should be no reason why
> dspam cannot open the file given the path does indeed exist and file
> permissions (and the user running dspam per the above) allow for access:
> 
> ls -al /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig
> -rw-rw----  1 root  mail  5916 Jul 20 06:51
> /var/db/dspam/data/global/global.sig/4a64767266215213795745.sig
> 
> Ideas?
> 
Hmm... I remember seen patches to the hash driver in GIT regarding that issue. 
Let me look.

Okay. I think this here is the problem (function _ds_get_signature in 
src/hash_drv.c):
  if (fread(SIG->data, statbuf.st_size, 1, file) != statbuf.st_size) {
    LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
    return EFAILURE;
  }

That should be:
  if (fread(SIG->data, statbuf.st_size, 1, file) != 1) {
    LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
    return EFAILURE;
  }

Or:
  if (fread(SIG->data, 1, statbuf.st_size, file) != statbuf.st_size) {
    LOG(LOG_ERR, ERR_IO_FILE_READ, filename, strerror(errno));
    return EFAILURE;
  }

Can you change the source and check if that fixes your issue?


> Thanks and regards
> Michael
> 
// Steve
-- 
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser

------------------------------------------------------------------------------
_______________________________________________
Dspam-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspam-user

Reply via email to