[Snort-users] (Compile 2.6RC2) undefined symbol: InitializePreprocessor

Jason Monroe monroe at ...13796...
Wed May 31 13:31:01 EDT 2006


Hi Justin,

 

You just might be right, but I'm curious to know presence or lack of a
trailing slash in the snort.conf affects the use "nm" when run against
the shared library itself?

 

Thanks in advance,

 

JC

 

 

 

 

________________________________

From: Justin Heath [mailto:justin.heath at ...11827...] 
Sent: Wednesday, May 31, 2006 7:00 AM
To: Jason Monroe
Cc: snort-users at lists.sourceforge.net
Subject: Re: [Snort-users] (Compile) undefined symbol:
InitializePreprocessor

 

Looks like you have you dynamic preprocessor directive set wrong in
snort.conf

im guessing you have something like:

dynamicpreprocessor directory /opt/snort/2.6/lib/snort_dynamicengine/

which should be changed to: 

dynamicpreprocessor directory
/opt/snort/2.6/lib/snort_dynamicpreprocessor

On 5/30/06, Jason Monroe < monroe at ...13796...
<mailto:monroe at ...13796...> > wrote:

Hi All,

I've tried to compile snort 2.6RC2 on Fedora Core 5 as well as RHEL 4 AS
which are GCC 4.1.0 and 3.4.5-2 respectively. Both distros are producing
the same result.

./configure --enable-dynamicplugin --prefix=/opt/snort/2.6  && make &&
make install
Then with the paths modified in the snort.conf
[root at ...13833... snort-2.6.0RC2]# grep '/opt/snort' /etc/snort/snort.conf
var RULE_PATH /opt/snort/rules
dynamicpreprocessor directory /opt/snort/2.6/lib/snort_dynamicengine/
dynamicengine /opt/snort/2.6/lib/snort_dynamicengine/libsf_engine.so


running snort with -c option
/opt/snort/2.6/bin/snort -c /etc/snort/snort.conf

yeilds:
+-----------------------[suppression]-----------------------------------
-------
| none
------------------------------------------------------------------------
-------
Rule application order: ->activation->dynamic->pass->drop->alert->log
Log directory = /var/log/snort
Loading dynamic engine
/opt/snort/2.6/lib/snort_dynamicengine/libsf_engine.so... done
Loading all dynamic preprocessor libs from
/opt/snort/2.6/lib/snort_dynamicengine/...
  Loading dynamic preprocessor library
/opt/snort/2.6/lib/snort_dynamicengine/libsf_engine.so... ERROR: Failed
to find InitializePreprocessor() function in
/opt/snort/2.6/lib/snort_dynamicengine//libsf_engine.so:
/opt/snort/2.6/lib/snort_dynamicengine/libsf_engine.so: undefined
symbol: InitializePreprocessor 
Fatal Error, Quitting..


Running nm
nm /opt/snort/2.6/lib/snort_dynamicengine/libsf_engine.so | grep 'U '
         U calloc@@GLIBC_2.0
         U __ctype_b_loc@@GLIBC_2.3
         U __ctype_toupper_loc@@GLIBC_2.3
         U fclose@@GLIBC_2.1
         U fopen@@GLIBC_2.1
         U fprintf@@GLIBC_2.0
         U free@@GLIBC_2.0
         U fwrite@@GLIBC_2.0
         U malloc@@GLIBC_2.0
         U memcmp@@GLIBC_2.0
         U memcpy@@GLIBC_2.0
         U pcre_compile
         U pcre_exec
         U pcre_study
         U rand@@GLIBC_2.0
         U snprintf@@GLIBC_2.0
         U srand@@GLIBC_2.0
         U strcmp@@GLIBC_2.0
         U __strdup@@GLIBC_2.0
         U strncpy@@GLIBC_2.0
         U __strtol_internal@@GLIBC_2.0
         U __strtoul_internal@@GLIBC_2.0
         U time@@GLIBC_2.0

I have RPMs pcre-4.5 and pcre-devel-4.5 installed on the system

The only thing that I could find regarding symbol version was to make
possibly make use of --disable-symvers which would be given to the
configure script, however, I don't think that was the correct place.

I have:
/opt/snort/2.6/lib/snort_dynamicpreprocessor
/opt/snort/2.6/lib/snort_dynamicengine
both in /etc/ld.so.conf and re-ran /sbin/ldconfig

Perhaps I'm missing something simple that one of you folks could be so
kind as to point out.

Thanks in advance,

JC

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.snort.org/pipermail/snort-users/attachments/20060531/36e788fb/attachment.html>


More information about the Snort-users mailing list