Jeremy,

Thank you for the (off-list) sample.
Which version of Perl are you using?

I can make razor-check crash with perl 5.6.2, but not with 5.10.1
(haven't tried with 5.8.8).  Using razor-agents-2.84 in each case.

Here is a valgrind report on a crash with perl 5.6.2:



$ valgrind /usr/local/bin/razor-check bad-email.msg
==34867== Memcheck, a memory error detector                        
==34867== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==34867== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==34867== Command: /usr/local/bin/razor-check bad-email.msg                
==34867==                                                                  
==34867== Invalid write of size 1                                          
==34867==    at 0x4A41F: memmove (in 
/usr/local/lib/valgrind/vgpreload_memcheck-x86-freebsd.so)
==34867==    by 0xE72DE: Perl_sv_setsv (sv.c:2874)                              
               
==34867==    by 0xD5613: Perl_pp_sassign (pp_hot.c:115)                         
               
==34867==    by 0xD4BA6: Perl_runops_debug (run.c:53)                           
               
==34867==    by 0x6AA2F: S_run_body (perl.c:1471)                               
               
==34867==    by 0x6A4D9: perl_run (perl.c:1393)                                 
               
==34867==    by 0x80494C5: main (in /usr/local/bin/perl)                        
               
==34867==  Address 0x882ee57 is not stack'd, malloc'd or (recently) free'd      
               
==34867==                                                                       
               
==34867==                                                                       
               
==34867== Process terminating with default action of signal 11 (SIGSEGV): 
dumping core         
==34867==  Access not within mapped region at address 0x882EE57
==34867==    at 0x4A41F: memmove (in 
/usr/local/lib/valgrind/vgpreload_memcheck-x86-freebsd.so)
==34867==    by 0xE72DE: Perl_sv_setsv (sv.c:2874)
==34867==    by 0xD5613: Perl_pp_sassign (pp_hot.c:115)
==34867==    by 0xD4BA6: Perl_runops_debug (run.c:53)
==34867==    by 0x6AA2F: S_run_body (perl.c:1471)
==34867==    by 0x6A4D9: perl_run (perl.c:1393)
==34867==    by 0x80494C5: main (in /usr/local/bin/perl)
==34867==  If you believe this happened as a result of a stack
==34867==  overflow in your program's main thread (unlikely but
==34867==  possible), you can try to increase the size of the
==34867==  main thread stack using the --main-stacksize= flag.
==34867==  The main thread stack size used in this run was 16777216.
==34867==
==34867== HEAP SUMMARY:
==34867==     in use at exit: 0 bytes in 0 blocks
==34867==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==34867==
==34867== All heap blocks were freed -- no leaks are possible
==34867==
==34867== For counts of detected and suppressed errors, rerun with: -v
==34867== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault: 11

Running the same command with gdb or directly happens to avoid the crash.
Running valgrinded under perl 5.10.1 does not report any problems!

As you have indicated, a likely culprit is the C code for parsing HTML:
Razor2-Preproc-deHTMLxs/_deHTMLxs.c, or maybe the glue in deHTMLxs.c .


  Mark

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/amavis-user 
 AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 
 AMaViS-HowTos:http://www.amavis.org/howto/ 

Reply via email to