small tcp_wrappers issue (argus-3.0.0.rc.10)

Carter Bullard carter at qosient.com
Sun Jun 25 18:33:41 EDT 2006


Hey Andreas,
     Looks like a winner to me!!!  I'll add this to the clients as  
well!!!
Carter


On Jun 25, 2006, at 5:56 PM, Andreas Östling wrote:

>
> On Thu, 22 Jun 2006, Carter Bullard wrote:
>
>> Hey Andreas,
>> I've included a patch for argus's ./aclocal.m4.  If you could
>> apply the patch and then:
> ...
>
> Thanks, it almost worked. The configure script will now correctly  
> detect tcp wrappers but then the real linking fails instead:
>
> gcc -O3 -I. -I/usr/include  -I./../include  -DPACKAGE_NAME=\"\" - 
> DPACKAGE_TARNAME=\"\"
> -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT= 
> \"\" -DHAVE_STRERROR=1 -DHAVE_STRLCPY=1
> -DHAVE_VSNPRINTF=1 -DHAVE_SNPRINTF=1 -DHAVE_ETHER_HOSTTON=1 - 
> DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1
> -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 - 
> DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
> -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRUCT_ETHER_ADDR=1 - 
> DHAVE_DECL_ETHER_HOSTTON=0
> -DHAVE_SYS_SOCKIO_H=1 -DHAVE_STRING_H=1 -DHAVE_FCNTL_H=1 - 
> DHAVE_SYS_FILE_H=1 -DHAVE_SYSLOG_H=1
> -DCONFIG_X86_BSWAP=1 -DSTDC_HEADERS=1  -o ../bin/argus argus.o  
> ArgusModeler.o ArgusSource.o ArgusUtil.o
> ArgusOutput.o ArgusUdp.o ArgusTcp.o ArgusIcmp.o ArgusIgmp.o  
> ArgusEsp.o ArgusArp.o ArgusFrag.o ArgusApp.o
> -lwrap   -lpcap  ../lib/argus_common.a -lm
> argus.o(.text+0xcfd): In function `main':
> : warning: strcpy() is almost always misused, please use strlcpy()
> /usr/lib/libwrap.so.4.0: undefined reference to `allow_severity'
> /usr/lib/libwrap.so.4.0: undefined reference to `deny_severity'
> collect2: ld returned 1 exit status
> gmake[1]: *** [../bin/argus] Error 1
>
> It turns out the configure script fails to add -DHAVE_TCP_WRAPPER  
> because $1=$libwrap was removed by your patch. Also, $libwrap is  
> set to "FAIL" by default and then never updated when the check  
> succeeds. I guess AC_CHECK_LIB took care of that before but now we  
> have do it ourselves.
>
> I'm not sure how you prefer to fix this but here is a suggested
> updated patch. The only difference is that I added libwrap="-lwrap"  
> and $1=$libwrap. Tested on OpenBSD and Linux with success, and  
> overriding with a local tcp_wrappers directory still works.
>
> --- aclocal.m4.orig     Wed Jun 14 02:26:13 2006
> +++ aclocal.m4  Sun Jun 25 21:07:23 2006
> @@ -695,16 +695,35 @@
>      if test $libwrap = FAIL ; then
>         AC_MSG_RESULT(not found)
>         AC_MSG_CHECKING(for system tcp_wrappers library)
> -       AC_CHECK_LIB(wrap, main, libwrap="-lwrap")
> -       if test $libwrap = FAIL ; then
> -          AC_MSG_WARN(tcp_wrapper not found)
> -       else
> -          $1=$libwrap
> -          LIBS="$libwrap $LIBS"
> -          if test -r /usr/local/include/tcpd.h; then
> -          $2="-I/usr/local/include $$2"
> +dnl    AC_CHECK_LIB(wrap, main, libwrap="-lwrap")
> +dnl    if test $libwrap = FAIL ; then
> +          AC_CACHE_VAL(ac_cv_qosient_wrapper,
> +             [ac_save_LIBS="$LIBS"
> +             LIBS="-lwrap $LIBS"
> +             AC_TRY_COMPILE(
> +                [int deny_severity = 0, allow_severity = 0;],
> +                ,
> +                ac_cv_qosient_wrapper=yes,
> +                ac_cv_qosient_wrapper=no)
> +             LIBS="$ac_save_LIBS"])
> +          AC_MSG_RESULT($ac_cv_qosient_wrapper)
> +          if test $ac_cv_qosient_wrapper = no ; then
> +             AC_MSG_WARN(tcp_wrapper not found)
> +          else
> +             libwrap="-lwrap"
> +             $1=$libwrap
> +             LIBS="$libwrap $LIBS"
> +             if test -r /usr/local/include/tcpd.h; then
> +             $2="-I/usr/local/include $$2"
> +             fi
>            fi
> -       fi
> +dnl    else
> +dnl       $1=$libwrap
> +dnl       LIBS="$libwrap $LIBS"
> +dnl       if test -r /usr/local/include/tcpd.h; then
> +dnl       $2="-I/usr/local/include $$2"
> +dnl       fi
> +dnl    fi
>      else
>         $1=$libwrap
>         if test -r $d/tcpd.h; then
>
> /Andreas
>
>

Carter Bullard
CEO/President
QoSient, LLC
150 E. 57th Street Suite 12D
New York, New York 10022

+1 212 588-9133 Phone
+1 212 588-9134 Fax





More information about the argus mailing list