[Oisf-devel] Segmentation fault on the latest Suricata beta

Duarte Silva duarte.silva at serializing.me
Thu Jan 23 15:30:05 UTC 2014


On Friday 20 December 2013 16:53:43 Victor Julien wrote:
> On 12/20/2013 04:50 PM, Duarte Silva wrote:
> > On Friday 20 December 2013 16:30:33 Victor Julien wrote:
> >> On 12/20/2013 04:23 PM, Duarte Silva wrote:
> >>> On Thursday 19 December 2013 14:40:33 Duarte Silva wrote:
> >>>> On Thursday 19 December 2013 15:05:17 Victor Julien wrote:
> >>>>> On 12/19/2013 02:42 PM, Duarte Silva wrote:
> >>>>>> Hi guys,
> >>>>>> 
> >>>>>> just a heads up, there is a segmentation fault when using the HTTP
> >>>>>> custom
> >>>>>> log (while printing the host name) on the latest 2.0 beta.
> >>>>>> 
> >>>>>> I have looked at the code and will create a pull request on GitHub
> >>>>>> with
> >>>>>> a
> >>>>>> possible fix. More info can be found at [1].
> >>>>> 
> >>>>> Thanks Duarte, looking forward to the patch.
> >>>> 
> >>>> It seems to be a regression. I have created the pull request [1]
> >>>> (already
> >>>> tested it and no segmentation fault has occurred).
> >>>> 
> >>>> [2] https://github.com/inliniac/suricata/pull/734
> >>>> 
> >>>>>> Another thing, the issue [2] can be closed.
> >>> 
> >>> Just for the record, the issue reported on [2] happened again. I think
> >>> the
> >>> reason is related with the fact that, while testing the patch for [1], I
> >>> was compiling Suricata with all stack protections enabled. After
> >>> disabling that, Suricata hasn't crashed when a signature matches (it has
> >>> been running for 22 hours and matched signatures 21 times) .
> >>> 
> >>> Follows the patch I used to enable stack protections:
> >>> 
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 4b394c6..e0c9ec5 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -246,10 +246,10 @@
> >>> 
> >>>      AS_IF([test "x$enable_gccprotect" = "xyes"], [
> >>>      
> >>>          #buffer overflow protection
> >>> 
> >>> -        AC_MSG_CHECKING(for -fstack-protector)
> >>> +        AC_MSG_CHECKING(for -fstack-protector-all)
> >>> 
> >>>          TMPCFLAGS="${CFLAGS}"
> >>> 
> >>> -        CFLAGS="${CFLAGS} -fstack-protector"
> >>> -        AC_TRY_LINK(,,SECCFLAGS="${SECCFLAGS} -fstack-protector"
> >>> +        CFLAGS="${CFLAGS} -fstack-protector-all"
> >>> +        AC_TRY_LINK(,,SECCFLAGS="${SECCFLAGS} -fstack-protector-all"
> >>> 
> >>>          AC_MSG_RESULT(yes),
> >>>          AC_MSG_RESULT(no))
> >>>          CFLAGS="${TMPCFLAGS}"
> >>> 
> >>> Hope it helps in future problems, cheers,
> >> 
> >> Care to do a PR for this? Maybe it'd be best to check for both options
> >> separately, so that if the -all option isn't available, we can still use
> >> the regular option.
> > 
> > I'm not sure I get what we would achieve with changing the
> > "-fstack-protector" to "-fstack-protector-all", because the patch above,
> > is the one that was creating the crash.
> 
> The way I interpret this is: it uncovers bugs, so it's worth having :)
> Especially in this point of our dev cycle.

Hi,

I got the same segmentation fault again (I'm starting to think this happens 
only with very specific traffic, which is somewhat strange).

This time, Suricata was compiled with -fstack-protector (default behavior). I 
will disable the position independent code compilation (another thing I added) 
and see if it has any influence.

Cheers,
Duarte Silva



More information about the Oisf-devel mailing list