I got this crash, probably due to a bad image.  The code in
ImageStripper.py that calls PIL is currently in a except IOError, but
should probably be in a bare except to catch any and all errors from
PIL.  In my case I got an IndexError.

I could make this change, if there is consensus and once Sourceforge
lets me get at the spambayes repository.


16:02:17+ sb_imapfilter.py -c
SpamBayes IMAP Filter Version 1.1a3 (August 2006).

Traceback (most recent call last):
  File "/ufs/sjoerd/bin/x86_64/sb_imapfilter.py", line 1301, in <module>
    run()
  File "/ufs/sjoerd/bin/x86_64/sb_imapfilter.py", line 1281, in run
    imap_filter.Filter()
  File "/ufs/sjoerd/bin/x86_64/sb_imapfilter.py", line 1080, in Filter
    self.unsure_folder, self.ham_folder)
  File "/ufs/sjoerd/bin/x86_64/sb_imapfilter.py", line 955, in Filter
    evidence=True)
  File
"/ufs/sjoerd/lib/python2.6/site-packages/spambayes/classifier.py", line
196, in chi2_spamprob
    clues = self._getclues(wordstream)
  File
"/ufs/sjoerd/lib/python2.6/site-packages/spambayes/classifier.py", line
498, in _getclues
    for word in Set(wordstream):
  File "/ufs/sjoerd/lib/python2.6/site-packages/spambayes/tokenizer.py",
line 1284, in tokenize
    for tok in self.tokenize_body(msg):
  File "/ufs/sjoerd/lib/python2.6/site-packages/spambayes/tokenizer.py",
line 1643, in tokenize_body
    text, tokens = crack_images(engine_name, parts)
  File
"/ufs/sjoerd/lib/python2.6/site-packages/spambayes/ImageStripper.py",
line 367, in analyze
    pnmfiles, tokens = PIL_decode_parts(parts)
  File
"/ufs/sjoerd/lib/python2.6/site-packages/spambayes/ImageStripper.py",
line 144, in PIL_decode_parts
    image.load()
  File "/ufs/sjoerd/lib/python2.6/site-packages/PIL/ImageFile.py", line
189, in load
    s = read(self.decodermaxblock)
  File "/ufs/sjoerd/lib/python2.6/site-packages/PIL/PngImagePlugin.py",
line 349, in load_read
    cid, pos, len = self.png.read()
  File "/ufs/sjoerd/lib/python2.6/site-packages/PIL/PngImagePlugin.py",
line 92, in read
    len = i32(s)
  File "/ufs/sjoerd/lib/python2.6/site-packages/PIL/PngImagePlugin.py",
line 40, in i32
    return ord(c[3]) + (ord(c[2])<<8) + (ord(c[1])<<16) + (ord(c[0])<<24)
IndexError: string index out of range

-- 
Sjoerd Mullender

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
spambayes-dev mailing list
spambayes-dev@python.org
http://mail.python.org/mailman/listinfo/spambayes-dev

Reply via email to