OK, I was able to reproduce that.  It happens because the .dmp file has eth2 packets and the .cap file has linux cooked packets.  Snort switches "grinders" (the root decoder) when the pcap is changed and will not segfault if you use either --pcap-reset or --dirty-pig.  Absent one of those options, stream5 blows up flushing at shutdown a packet captured in the first file by trying to re-decode it using the grinder for the second file.<br>
<br>I'll file a bug for this.  The fix will probably be to force --pcap-reset behavior when the grinder changes for a new pcap.<br><br>BTW, adding --enable-sourcefire makes no difference in this case (segfault w/or w/o).  It is mostly just shorthand for a bunch of other enables, but it does set a flag which is used conditionally in a few places.<br>
<br>Thanks for all your help getting to the bottom of this.<br>Russ<br><br><div class="gmail_quote">On Fri, Oct 7, 2011 at 8:46 PM,  <span dir="ltr"><<a href="mailto:Joshua.Kinard@...3108...">Joshua.Kinard@...3108...</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">-----Original Message-----<br>
From: Russ Combs [mailto:<a href="mailto:rcombs@...402...">rcombs@...2945.....</a>]<br>
Sent: Friday, October 07, 2011 8:29 AM<br>
Subject: Re: [Snort-devel] [BUG][Stream5]: SIGSEGV in Stream5 TCP,<br>
TcpSessionCleanup at snort_stream5_tcp.c:4624<br>
<div class="im"><br>
>> On Fri, Oct 7, 2011 at 7:20 AM, Russ Combs <<a href="mailto:rcombs@...402...">rcombs@...402...</a>><br>
wrote:<br>
>><br>
>>      Hey Joshua,<br>
>><br>
>>      Thanks for reporting this problem.  I am unable to reproduce it<br>
with my Ubuntu gcc 4.4.3.<br>
><br>
> No segfault with Fedora gcc 4.5.1 either.<br>
><br>
>       Can you also send your ./configure and command lines?<br>
><br>
> I'm configuring via snort.conf and running with snort -c test.conf -r<br>
2009-04-21-07-47-35.dmp  -A cmg.<br>
<br>
</div>Hi Russ,<br>
<br>
Minus --prefix and some of the --with-* overrides (because I am building<br>
this as an unprivileged user and have compiled the needed libraries in<br>
my home folder), this is my configure line:<br>
<br>
./configure --enable-ipv6 --enable-zlib --enable-gre --enable-mpls<br>
--enable-decoder-preprocessor-rules --enable-pthread --enable-debug-msgs<br>
--enable-debug --enable-react --enable-flexresp3 --enable-normalizer<br>
--enable-perfprofiling<br>
<br>
My command line is this:<br>
<br>
snort -c local.rules -k none -A console --pcap-dir <dir>/ -q<br>
<br>
On a whim, I just tested using -r <pcap>, and that does not trigger the<br>
SIGSEGV.  It does happen if you use --pcap-dir and have the referenced<br>
PCAP file in the target directory PLUS this SCTP sample from WireShark's<br>
Sample Captures:<br>
<a href="http://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&targe%0At=sctp-addip.cap" target="_blank">http://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&targe<br>
t=sctp-addip.cap</a><br>
<br>
Also, using --enable-sourcefire causes this SIGSEGV to disappear.  What<br>
is that configure flag doing, exactly?<br>
<br>
<br>
Thanks!,<br>
<br>
--J<br>
</blockquote></div><br>