Changeset 138


Ignore:
Timestamp:
Oct 28, 2007, 4:55:19 PM (11 years ago)
Author:
rainer
Message:

More fixes for compile and runtime errors.

Location:
trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile.in

    r126 r138  
    117117        rijndael-boxes-fst.h sh_socket.h sh_ignore.h sh_prelude.h \ 
    118118        sh_mounts.h sh_userfiles.h sh_static.h sh_prelink.h \ 
    119         sh_processcheck.h sh_portcheck.h 
     119        sh_processcheck.h sh_portcheck.h sh_pthread.h 
    120120 
    121121 
     
    150150        $(srcsrc)/sh_prelink.c $(srcsrc)/sh_static.c \ 
    151151        $(srcsrc)/sh_portcheck.c \ 
    152         $(srcsrc)/sh_processcheck.c $(srcsrc)/sh_prelude_old.c  
     152        $(srcsrc)/sh_processcheck.c $(srcsrc)/sh_prelude_old.c \ 
     153        $(srcsrc)/sh_pthread.c 
    153154 
    154155OBJECTS = sh_files.o sh_tiger0.o sh_tiger2.o sh_tiger2_64.o \ 
     
    163164        zAVLTree.o sh_socket.o sh_ignore.o sh_prelude.o \ 
    164165        sh_mounts.o sh_userfiles.o sh_prelink.o sh_static.o \ 
    165         sh_processcheck.o sh_portcheck.o sh_prelude_old.o   
     166        sh_processcheck.o sh_portcheck.o sh_prelude_old.o \ 
     167        sh_pthread.o 
    166168 
    167169KERN = kern_head.h kern_head.c 
     
    16331635 
    16341636 
    1635 samhain.o: $(srcsrc)/samhain.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_getopt.h $(srcinc)/sh_readconf.h $(srcinc)/sh_hash.h $(srcinc)/sh_mail.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_mem.h $(srcinc)/sh_forward.h $(srcinc)/sh_tools.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h $(srcinc)/sh_modules.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h sh_MK.h $(srcinc)/sh_schedule.h  
    1636 sh_unix.o: $(srcsrc)/sh_unix.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_hash.h $(srcinc)/sh_tools.h $(srcinc)/sh_tiger.h $(srcinc)/sh_prelink.h $(srcinc)/sh_static.h $(srcinc)/sh_prelude.h $(srcinc)/sh_ignore.h  
    1637 sh_utils.o: $(srcsrc)/sh_utils.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_entropy.h  
     1637samhain.o: $(srcsrc)/samhain.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_getopt.h $(srcinc)/sh_readconf.h $(srcinc)/sh_hash.h $(srcinc)/sh_mail.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_mem.h $(srcinc)/sh_forward.h $(srcinc)/sh_tools.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h $(srcinc)/sh_modules.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h sh_MK.h $(srcinc)/sh_schedule.h  
     1638sh_unix.o: $(srcsrc)/sh_unix.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_hash.h $(srcinc)/sh_tools.h $(srcinc)/sh_tiger.h $(srcinc)/sh_prelink.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_prelude.h $(srcinc)/sh_ignore.h  
     1639sh_utils.o: $(srcsrc)/sh_utils.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_entropy.h $(srcinc)/sh_pthread.h  
    16381640sh_error.o: $(srcsrc)/sh_error.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_database.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_forward.h $(srcinc)/sh_prelude.h $(srcinc)/sh_tools.h $(srcinc)/sh_extern.h  
    1639 sh_files.o: $(srcsrc)/sh_files.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_tiger.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/zAVLTree.h  
     1641sh_files.o: $(srcsrc)/sh_files.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_tiger.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/zAVLTree.h  
    16401642sh_getopt.o: $(srcsrc)/sh_getopt.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_getopt.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_mail.h $(srcinc)/sh_forward.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h  
    16411643sh_readconf.o: $(srcsrc)/sh_readconf.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_database.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_files.h $(srcinc)/sh_mail.h $(srcinc)/sh_calls.h $(srcinc)/sh_tiger.h $(srcinc)/sh_forward.h $(srcinc)/sh_modules.h $(srcinc)/sh_gpg.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h $(srcinc)/sh_extern.h $(srcinc)/sh_database.h $(srcinc)/sh_prelude.h  
    1642 sh_tiger0.o: $(srcsrc)/sh_tiger0.c Makefile config_xor.h $(srcinc)/sh_tiger.h $(srcinc)/sh_unix.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h  
     1644sh_tiger0.o: $(srcsrc)/sh_tiger0.c Makefile config_xor.h $(srcinc)/sh_tiger.h $(srcinc)/sh_unix.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_pthread.h  
    16431645sh_tiger1.o: $(srcsrc)/sh_tiger1.c Makefile config_xor.h  
    16441646sh_tiger2.o: $(srcsrc)/sh_tiger2.c Makefile config_xor.h  
     
    16461648sh_tiger2_64.o: $(srcsrc)/sh_tiger2_64.c Makefile config_xor.h  
    16471649sh_hash.o: $(srcsrc)/sh_hash.c Makefile config_xor.h $(srcinc)/sh_hash.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_ignore.h $(srcinc)/sh_forward.h $(srcinc)/sh_hash.h  
    1648 sh_mail.o: $(srcsrc)/sh_mail.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_utils.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_static.h $(srcinc)/sh_tools.h  
    1649 sh_mem.o: $(srcsrc)/sh_mem.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h  
    1650 sh_entropy.o: $(srcsrc)/sh_entropy.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_calls.h $(srcinc)/sh_static.h  
     1650sh_mail.o: $(srcsrc)/sh_mail.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_utils.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_tools.h  
     1651sh_mem.o: $(srcsrc)/sh_mem.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_pthread.h  
     1652sh_entropy.o: $(srcsrc)/sh_entropy.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_calls.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    16511653sh_forward.o: $(srcsrc)/sh_forward.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_forward.h $(srcinc)/sh_srp.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_entropy.h $(srcinc)/sh_html.h $(srcinc)/sh_mail.h $(srcinc)/sh_socket.h $(srcinc)/sh_static.h $(srcinc)/rijndael-api-fst.h $(srcinc)/sh_readconf.h $(srcinc)/zAVLTree.h $(srcinc)/sh_extern.h  
    16521654sh_modules.o: $(srcsrc)/sh_modules.c Makefile config_xor.h $(srcinc)/sh_modules.h $(srcinc)/sh_utmp.h $(srcinc)/sh_mounts.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_kern.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_processcheck.h $(srcinc)/sh_portcheck.h  
    16531655sh_utmp.o: $(srcsrc)/sh_utmp.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_utmp.h  
    1654 sh_kern.o: $(srcsrc)/sh_kern.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_kern.h sh_ks_xor.h $(srcinc)/sh_unix.h $(srcinc)/sh_hash.h  
    1655 sh_suidchk.o: $(srcsrc)/sh_suidchk.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_hash.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_schedule.h $(srcinc)/sh_calls.h  
     1656sh_kern.o: $(srcsrc)/sh_kern.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_kern.h sh_ks_xor.h $(srcinc)/sh_unix.h $(srcinc)/sh_hash.h  
     1657sh_suidchk.o: $(srcsrc)/sh_suidchk.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_hash.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_schedule.h $(srcinc)/sh_calls.h  
    16561658sh_srp.o: $(srcsrc)/sh_srp.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mem.h $(srcinc)/sh_utils.h $(srcinc)/sh_srp.h $(srcinc)/bignum.h  
    16571659sh_fifo.o: $(srcsrc)/sh_fifo.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_unix.h  
    1658 sh_tools.o: $(srcsrc)/sh_tools.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_error.h $(srcinc)/sh_tools.h $(srcinc)/sh_utils.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h $(srcinc)/rijndael-api-fst.h $(srcinc)/rijndael-api-fst.h  
     1660sh_tools.o: $(srcsrc)/sh_tools.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_error.h $(srcinc)/sh_tools.h $(srcinc)/sh_utils.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h $(srcinc)/rijndael-api-fst.h $(srcinc)/rijndael-api-fst.h  
    16591661sh_html.o: $(srcsrc)/sh_html.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_forward.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_html.h $(srcinc)/zAVLTree.h  
    16601662sh_gpg.o: $(srcsrc)/sh_gpg.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h  
     
    16731675encode.o: $(srcsrc)/encode.c Makefile  
    16741676sstrip.o: $(srcsrc)/sstrip.c Makefile config.h  
    1675 trustfile.o: $(srcsrc)/trustfile.c Makefile config_xor.h $(srcinc)/sh_calls.h $(srcinc)/slib.h $(srcinc)/sh_static.h  
     1677trustfile.o: $(srcsrc)/trustfile.c Makefile config_xor.h $(srcinc)/sh_calls.h $(srcinc)/slib.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    16761678exepack.o: $(srcsrc)/exepack.c Makefile config.h $(srcinc)/minilzo.h $(srcinc)/exepack.data  
    16771679exepack_fill.o: $(srcsrc)/exepack_fill.c Makefile config.h config.h $(srcinc)/minilzo.h  
     
    16861688yulectl.o: $(srcsrc)/yulectl.c Makefile config_xor.h  
    16871689sh_mounts.o: $(srcsrc)/sh_mounts.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_mounts.h  
    1688 sh_userfiles.o: $(srcsrc)/sh_userfiles.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_utils.h $(srcinc)/sh_schedule.h $(srcinc)/sh_error.h $(srcinc)/sh_hash.h $(srcinc)/sh_files.h $(srcinc)/sh_static.h  
    1689 sh_prelude.o: $(srcsrc)/sh_prelude.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h  
     1690sh_userfiles.o: $(srcsrc)/sh_userfiles.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_utils.h $(srcinc)/sh_schedule.h $(srcinc)/sh_error.h $(srcinc)/sh_hash.h $(srcinc)/sh_files.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
     1691sh_prelude.o: $(srcsrc)/sh_prelude.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h  
    16901692kern_head.o: $(srcsrc)/kern_head.c Makefile config.h $(srcinc)/kern_head.h $(srcinc)/kern_head.h  
    16911693sh_prelink.o: $(srcsrc)/sh_prelink.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_extern.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h  
    1692 sh_static.o: $(srcsrc)/sh_static.c Makefile config_xor.h  
    1693 sh_prelude_old.o: $(srcsrc)/sh_prelude_old.c Makefile config_xor.h $(srcinc)/slib.h $(srcinc)/sh_mem.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h  
     1694sh_static.o: $(srcsrc)/sh_static.c Makefile config_xor.h $(srcinc)/sh_pthread.h  
     1695sh_prelude_old.o: $(srcsrc)/sh_prelude_old.c Makefile config_xor.h $(srcinc)/slib.h $(srcinc)/sh_mem.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    16941696sh_async.o: $(srcsrc)/sh_async.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_calls.h $(srcinc)/sh_error.h  
    16951697sh_processcheck.o: $(srcsrc)/sh_processcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_processcheck.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_extern.h $(srcinc)/sh_calls.h $(srcinc)/CuTest.h  
    1696 sh_portcheck.o: $(srcsrc)/sh_portcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_mem.h $(srcinc)/sh_calls.h $(srcinc)/sh_utils.h $(srcinc)/sh_modules.h $(srcinc)/CuTest.h  
     1698sh_portcheck.o: $(srcsrc)/sh_portcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_mem.h $(srcinc)/sh_calls.h $(srcinc)/sh_utils.h $(srcinc)/sh_modules.h $(srcinc)/sh_pthread.h $(srcinc)/CuTest.h  
     1699sh_pthread.o: $(srcsrc)/sh_pthread.c Makefile config_xor.h $(srcinc)/sh_pthread.h  
  • trunk/aclocal.m4

    r129 r138  
    17011701                ;; 
    17021702 
     1703                -pthread) 
     1704                AC_MSG_CHECKING([whether pthreads work with $flag]) 
     1705                PTHREAD_CFLAGS="$flag" 
     1706                PTHREAD_LDFLAGS="$flag" 
     1707                ;; 
     1708 
    17031709                -*) 
    17041710                AC_MSG_CHECKING([whether pthreads work with $flag]) 
     
    17211727        save_LIBS="$LIBS" 
    17221728        save_CFLAGS="$CFLAGS" 
     1729        save_LDFLAGS="$LDFLAGS" 
    17231730        LIBS="$PTHREAD_LIBS $LIBS" 
    17241731        CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 
     1732        LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS" 
    17251733 
    17261734        # Check for various functions.  We must include pthread.h, 
     
    17401748 
    17411749        LIBS="$save_LIBS" 
     1750        LDFLAGS="$save_LDFLAGS" 
    17421751        CFLAGS="$save_CFLAGS" 
    17431752 
     
    17491758        PTHREAD_LIBS="" 
    17501759        PTHREAD_CFLAGS="" 
     1760        PTHREAD_LDFLAGS="" 
    17511761done 
    17521762fi 
     
    17991809AC_SUBST(PTHREAD_LIBS) 
    18001810AC_SUBST(PTHREAD_CFLAGS) 
     1811AC_SUBST(PTHREAD_LDFLAGS) 
    18011812AC_SUBST(PTHREAD_CC) 
    18021813 
  • trunk/configure.ac

    r132 r138  
    800800) 
    801801 
    802 if test x"${mytclient}" = x-DSH_STANDALONE -o x"${mytclient}" = x-DSH_WITH_CLIENT; 
    803 then 
    804         ACX_PTHREAD 
    805         CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 
    806         LIBS="$PTHREAD_LIBS $LIBS" 
    807         CC="$PTHREAD_CC" 
    808 fi 
    809          
    810802AC_SUBST(setpwd_prg) 
    811803AC_SUBST(yulectl_prg) 
     
    878870) 
    879871 
     872if test x"${mytclient}" = x-DSH_STANDALONE -o x"${mytclient}" = x-DSH_WITH_CLIENT; 
     873then 
     874        ACX_PTHREAD 
     875        CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 
     876        LIBS="$PTHREAD_LIBS $LIBS" 
     877        LDFLAGS="$PTHREAD_LDFLAGS $LDFLAGS" 
     878        CC="$PTHREAD_CC" 
     879fi 
     880         
    880881# 
    881882# this is from the snort configure.in 
  • trunk/depend.dep

    r111 r138  
    11 
    22# DO NOT DELETE THIS LINE 
    3 samhain.o: $(srcsrc)/samhain.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_getopt.h $(srcinc)/sh_readconf.h $(srcinc)/sh_hash.h $(srcinc)/sh_mail.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_mem.h $(srcinc)/sh_forward.h $(srcinc)/sh_tools.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h $(srcinc)/sh_modules.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h sh_MK.h $(srcinc)/sh_schedule.h  
    4 sh_unix.o: $(srcsrc)/sh_unix.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_hash.h $(srcinc)/sh_tools.h $(srcinc)/sh_tiger.h $(srcinc)/sh_prelink.h $(srcinc)/sh_static.h $(srcinc)/sh_prelude.h $(srcinc)/sh_ignore.h  
    5 sh_utils.o: $(srcsrc)/sh_utils.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_entropy.h  
     3samhain.o: $(srcsrc)/samhain.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_getopt.h $(srcinc)/sh_readconf.h $(srcinc)/sh_hash.h $(srcinc)/sh_mail.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_mem.h $(srcinc)/sh_forward.h $(srcinc)/sh_tools.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h $(srcinc)/sh_modules.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h sh_MK.h $(srcinc)/sh_schedule.h  
     4sh_unix.o: $(srcsrc)/sh_unix.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_hash.h $(srcinc)/sh_tools.h $(srcinc)/sh_tiger.h $(srcinc)/sh_prelink.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_prelude.h $(srcinc)/sh_ignore.h  
     5sh_utils.o: $(srcsrc)/sh_utils.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_entropy.h $(srcinc)/sh_pthread.h  
    66sh_error.o: $(srcsrc)/sh_error.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_database.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_forward.h $(srcinc)/sh_prelude.h $(srcinc)/sh_tools.h $(srcinc)/sh_extern.h  
    7 sh_files.o: $(srcsrc)/sh_files.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_tiger.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/zAVLTree.h  
     7sh_files.o: $(srcsrc)/sh_files.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_tiger.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/zAVLTree.h  
    88sh_getopt.o: $(srcsrc)/sh_getopt.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_getopt.h $(srcinc)/sh_files.h $(srcinc)/sh_utils.h $(srcinc)/sh_mail.h $(srcinc)/sh_forward.h $(srcinc)/sh_hash.h $(srcinc)/sh_extern.h  
    99sh_readconf.o: $(srcsrc)/sh_readconf.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_database.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_files.h $(srcinc)/sh_mail.h $(srcinc)/sh_calls.h $(srcinc)/sh_tiger.h $(srcinc)/sh_forward.h $(srcinc)/sh_modules.h $(srcinc)/sh_gpg.h $(srcinc)/sh_hash.h $(srcinc)/sh_ignore.h $(srcinc)/sh_prelink.h $(srcinc)/sh_extern.h $(srcinc)/sh_database.h $(srcinc)/sh_prelude.h  
    10 sh_tiger0.o: $(srcsrc)/sh_tiger0.c Makefile config_xor.h $(srcinc)/sh_tiger.h $(srcinc)/sh_unix.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h  
     10sh_tiger0.o: $(srcsrc)/sh_tiger0.c Makefile config_xor.h $(srcinc)/sh_tiger.h $(srcinc)/sh_unix.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_pthread.h  
    1111sh_tiger1.o: $(srcsrc)/sh_tiger1.c Makefile config_xor.h  
    1212sh_tiger2.o: $(srcsrc)/sh_tiger2.c Makefile config_xor.h  
     
    1414sh_tiger2_64.o: $(srcsrc)/sh_tiger2_64.c Makefile config_xor.h  
    1515sh_hash.o: $(srcsrc)/sh_hash.c Makefile config_xor.h $(srcinc)/sh_hash.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_tiger.h $(srcinc)/sh_gpg.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_ignore.h $(srcinc)/sh_forward.h $(srcinc)/sh_hash.h  
    16 sh_mail.o: $(srcsrc)/sh_mail.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_utils.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_static.h $(srcinc)/sh_tools.h  
    17 sh_mem.o: $(srcsrc)/sh_mem.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h  
    18 sh_entropy.o: $(srcsrc)/sh_entropy.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_calls.h $(srcinc)/sh_static.h  
     16sh_mail.o: $(srcsrc)/sh_mail.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mail.h $(srcinc)/sh_utils.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_tools.h  
     17sh_mem.o: $(srcsrc)/sh_mem.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_utils.h $(srcinc)/sh_mem.h $(srcinc)/sh_pthread.h  
     18sh_entropy.o: $(srcsrc)/sh_entropy.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_tiger.h $(srcinc)/sh_calls.h $(srcinc)/sh_pthread.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    1919sh_forward.o: $(srcsrc)/sh_forward.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h $(srcinc)/sh_forward.h $(srcinc)/sh_srp.h $(srcinc)/sh_fifo.h $(srcinc)/sh_tools.h $(srcinc)/sh_entropy.h $(srcinc)/sh_html.h $(srcinc)/sh_mail.h $(srcinc)/sh_socket.h $(srcinc)/sh_static.h $(srcinc)/rijndael-api-fst.h $(srcinc)/sh_readconf.h $(srcinc)/zAVLTree.h $(srcinc)/sh_extern.h  
    2020sh_modules.o: $(srcsrc)/sh_modules.c Makefile config_xor.h $(srcinc)/sh_modules.h $(srcinc)/sh_utmp.h $(srcinc)/sh_mounts.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_kern.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_processcheck.h $(srcinc)/sh_portcheck.h  
    2121sh_utmp.o: $(srcsrc)/sh_utmp.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_utmp.h  
    22 sh_kern.o: $(srcsrc)/sh_kern.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_kern.h sh_ks_xor.h $(srcinc)/sh_unix.h $(srcinc)/sh_hash.h  
    23 sh_suidchk.o: $(srcsrc)/sh_suidchk.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_hash.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_schedule.h $(srcinc)/sh_calls.h  
     22sh_kern.o: $(srcsrc)/sh_kern.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_kern.h sh_ks_xor.h $(srcinc)/sh_unix.h $(srcinc)/sh_hash.h  
     23sh_suidchk.o: $(srcsrc)/sh_suidchk.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_pthread.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_suidchk.h $(srcinc)/sh_hash.h $(srcinc)/sh_unix.h $(srcinc)/sh_files.h $(srcinc)/sh_schedule.h $(srcinc)/sh_calls.h  
    2424sh_srp.o: $(srcsrc)/sh_srp.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_mem.h $(srcinc)/sh_utils.h $(srcinc)/sh_srp.h $(srcinc)/bignum.h  
    2525sh_fifo.o: $(srcsrc)/sh_fifo.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_unix.h  
    26 sh_tools.o: $(srcsrc)/sh_tools.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_error.h $(srcinc)/sh_tools.h $(srcinc)/sh_utils.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h $(srcinc)/rijndael-api-fst.h $(srcinc)/rijndael-api-fst.h  
     26sh_tools.o: $(srcsrc)/sh_tools.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_mem.h $(srcinc)/sh_error.h $(srcinc)/sh_tools.h $(srcinc)/sh_utils.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h $(srcinc)/rijndael-api-fst.h $(srcinc)/rijndael-api-fst.h  
    2727sh_html.o: $(srcsrc)/sh_html.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_forward.h $(srcinc)/sh_error.h $(srcinc)/sh_unix.h $(srcinc)/sh_utils.h $(srcinc)/sh_html.h $(srcinc)/zAVLTree.h  
    2828sh_gpg.o: $(srcsrc)/sh_gpg.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_tiger.h $(srcinc)/sh_static.h  
     
    4141encode.o: $(srcsrc)/encode.c Makefile  
    4242sstrip.o: $(srcsrc)/sstrip.c Makefile config.h  
    43 trustfile.o: $(srcsrc)/trustfile.c Makefile config_xor.h $(srcinc)/sh_calls.h $(srcinc)/slib.h $(srcinc)/sh_static.h  
     43trustfile.o: $(srcsrc)/trustfile.c Makefile config_xor.h $(srcinc)/sh_calls.h $(srcinc)/slib.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    4444exepack.o: $(srcsrc)/exepack.c Makefile config.h $(srcinc)/minilzo.h $(srcinc)/exepack.data  
    4545exepack_fill.o: $(srcsrc)/exepack_fill.c Makefile config.h config.h $(srcinc)/minilzo.h  
     
    5454yulectl.o: $(srcsrc)/yulectl.c Makefile config_xor.h  
    5555sh_mounts.o: $(srcsrc)/sh_mounts.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_modules.h $(srcinc)/sh_mounts.h  
    56 sh_userfiles.o: $(srcsrc)/sh_userfiles.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_utils.h $(srcinc)/sh_schedule.h $(srcinc)/sh_error.h $(srcinc)/sh_hash.h $(srcinc)/sh_files.h $(srcinc)/sh_static.h  
    57 sh_prelude.o: $(srcsrc)/sh_prelude.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h  
     56sh_userfiles.o: $(srcsrc)/sh_userfiles.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_userfiles.h $(srcinc)/sh_utils.h $(srcinc)/sh_schedule.h $(srcinc)/sh_error.h $(srcinc)/sh_hash.h $(srcinc)/sh_files.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
     57sh_prelude.o: $(srcsrc)/sh_prelude.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h  
    5858sh_prelink.o: $(srcsrc)/sh_prelink.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_tiger.h $(srcinc)/sh_extern.h $(srcinc)/sh_utils.h $(srcinc)/sh_unix.h  
    59 sh_static.o: $(srcsrc)/sh_static.c Makefile config_xor.h  
    60 sh_prelude_old.o: $(srcsrc)/sh_prelude_old.c Makefile config_xor.h $(srcinc)/slib.h $(srcinc)/sh_mem.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h  
     59sh_static.o: $(srcsrc)/sh_static.c Makefile config_xor.h $(srcinc)/sh_pthread.h  
     60sh_prelude_old.o: $(srcsrc)/sh_prelude_old.c Makefile config_xor.h $(srcinc)/slib.h $(srcinc)/sh_mem.h $(srcinc)/sh_cat.h $(srcinc)/sh_error_min.h $(srcinc)/sh_prelude.h $(srcinc)/sh_static.h $(srcinc)/sh_pthread.h  
    6161kern_head.o: $(srcsrc)/kern_head.c Makefile config.h $(srcinc)/kern_head.h $(srcinc)/kern_head.h  
    6262sh_async.o: $(srcsrc)/sh_async.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_calls.h $(srcinc)/sh_error.h  
    6363sh_processcheck.o: $(srcsrc)/sh_processcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_modules.h $(srcinc)/sh_processcheck.h $(srcinc)/sh_utils.h $(srcinc)/sh_error.h $(srcinc)/sh_extern.h $(srcinc)/sh_calls.h $(srcinc)/CuTest.h  
    64 sh_portcheck.o: $(srcsrc)/sh_portcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_mem.h $(srcinc)/sh_calls.h $(srcinc)/sh_utils.h $(srcinc)/sh_modules.h $(srcinc)/CuTest.h  
     64sh_portcheck.o: $(srcsrc)/sh_portcheck.c Makefile config_xor.h $(srcinc)/samhain.h $(srcinc)/sh_error.h $(srcinc)/sh_mem.h $(srcinc)/sh_calls.h $(srcinc)/sh_utils.h $(srcinc)/sh_modules.h $(srcinc)/sh_pthread.h $(srcinc)/CuTest.h  
     65sh_pthread.o: $(srcsrc)/sh_pthread.c Makefile config_xor.h $(srcinc)/sh_pthread.h  
  • trunk/depend.sum

    r111 r138  
    1 1096789008 
     1754800869 
  • trunk/docs/Changelog

    r135 r138  
    55        * protect readdir(), getpwent(), gethostname() with mutexes  
    66          (readdir_r considered harmful) 
    7         * make checksum/hash, entropy function reentrant 
     7        * make checksum/hash, entropy, rng functions reentrant 
    88        * use thread-specific conversion buffer for globber() 
     9        * fixed compile problems and problems with test suite 
    910 
    10112.3.8: 
  • trunk/include/samhain.h

    r133 r138  
    4343#define SH_PATHBUF      256 
    4444 
    45 #define SH_GRBUF_SIZE  4096 
    46 #define SH_PWBUF_SIZE  4096 
    4745#define SH_ERRBUF_SIZE   64 
    4846 
  • trunk/include/sh_files.h

    r131 r138  
    3030void kill_sh_dirlist (struct sh_dirent * dirlist); 
    3131 
     32#ifdef NEED_ADD_DIRENT 
    3233/* add an entry to a directory listing 
    3334 */ 
    3435struct sh_dirent * addto_sh_dirlist (struct dirent * thisEntry,  
    3536                                     struct sh_dirent * dirlist); 
     37#endif 
     38 
    3639/* register exceptions to hardlink check 
    3740 */ 
  • trunk/include/sh_pthread.h

    r134 r138  
    55 
    66#include <pthread.h> 
     7 
    78#define SH_MUTEX(M)                             pthread_mutex_t M 
    89#define SH_MUTEX_INIT(M,I)                      pthread_mutex_t M = I 
     
    1011#define SH_MUTEX_EXTERN(M)                      extern pthread_mutex_t M 
    1112 
     13/* pthread_mutex_unlock() has the wrong type (returns int), so 
     14 * we need to wrap it in this function. 
     15 */ 
     16extern void sh_pthread_mutex_unlock (void *arg); 
     17 
    1218#define SH_MUTEX_LOCK(M)                                                   \ 
    1319        do {                                                               \ 
    1420                int oldtype;                                               \ 
    1521                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \ 
    16                 pthread_cleanup_push(pthread_mutex_unlock, (void *) &(M)); \ 
     22                pthread_cleanup_push(sh_pthread_mutex_unlock, (void*)&(M));\ 
    1723                pthread_mutex_lock(&(M)) 
    1824 
    1925 
    20 #define SH_MUTEX_UNLOCK(M,C)                                               \ 
     26#define SH_MUTEX_UNLOCK(M)                                                 \ 
    2127                pthread_cleanup_pop(1);                                    \ 
    2228                pthread_setcanceltype(oldtype, NULL);                      \ 
     
    2632#define SH_MUTEX_UNLOCK_UNSAFE(M) pthread_mutex_unlock(&(M)) 
    2733 
     34 
     35/* 
     36 * ----   Recursive mutex  ---- 
     37 */ 
     38#if defined(PTHREAD_MUTEX_RECURSIVE) 
     39 
     40/* On GNU C, it's an enum, thus the alternative implementation  
     41 * below is used. 
     42 */ 
     43#define SH_MUTEX_RECURSIVE(M)                                          \ 
     44static pthread_mutex_t M;                                              \ 
     45static void M ## _init (void)                                          \ 
     46{                                                                      \ 
     47  pthread_mutexattr_t   mta;                                           \ 
     48  pthread_mutexattr_settype(&mta, PTHREAD_MUTEX_RECURSIVE);            \ 
     49  pthread_mutex_init(&(M), &mta);                                      \ 
     50  pthread_mutexattr_destroy(&mta);                                     \ 
     51  return;                                                              \ 
     52}                                                                      \ 
     53static pthread_once_t  M ## _initialized = PTHREAD_ONCE_INIT 
     54 
     55#define SH_MUTEX_RECURSIVE_INIT(M)                                     \ 
     56(void) pthread_once(&(M ## _initialized), (M ## _init)) 
     57 
     58#define SH_MUTEX_RECURSIVE_LOCK(M)                                         \ 
     59        do {                                                               \ 
     60                int oldtype;                                               \ 
     61                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \ 
     62                pthread_cleanup_push(sh_pthread_mutex_unlock, (void*)&(M));\ 
     63                pthread_mutex_lock(&(M)) 
     64 
     65#define SH_MUTEX_RECURSIVE_UNLOCK(M)                                       \ 
     66                pthread_cleanup_pop(1);                                    \ 
     67                pthread_setcanceltype(oldtype, NULL);                      \ 
     68        } while (0) 
     69 
     70#else 
     71/* !defined(PTHREAD_MUTEX_RECURSIVE) */ 
     72 struct sh_RMutex { 
     73 
     74  pthread_mutex_t lock; 
     75  unsigned int    held; 
     76  unsigned int    waiters; 
     77  pthread_t       tid; 
     78  pthread_cond_t  cv; 
     79}; 
     80 
     81void sh_RMutexLock(struct sh_RMutex * tok); 
     82void sh_RMutexUnlock(void * arg); 
     83void sh_InitRMutex(struct sh_RMutex * tok); 
     84 
     85#define SH_MUTEX_RECURSIVE(M)                                          \ 
     86static struct sh_RMutex M;                                             \ 
     87static void M ## _init (void)                                          \ 
     88{                                                                      \ 
     89  sh_InitRMutex(&(M));                                                 \ 
     90  return;                                                              \ 
     91}                                                                      \ 
     92static pthread_once_t  M ## _initialized = PTHREAD_ONCE_INIT 
     93 
     94#define SH_MUTEX_RECURSIVE_INIT(M)                                     \ 
     95(void) pthread_once(&(M ## _initialized), (M ## _init)) 
     96 
     97#define SH_MUTEX_RECURSIVE_LOCK(M)                                         \ 
     98        do {                                                               \ 
     99                int oldtype;                                               \ 
     100                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \ 
     101                pthread_cleanup_push(sh_RMutexUnlock, (void*)&(M));        \ 
     102                sh_RMutexLock(&(M)) 
     103 
     104#define SH_MUTEX_RECURSIVE_UNLOCK(M)                                       \ 
     105                pthread_cleanup_pop(1);                                    \ 
     106                pthread_setcanceltype(oldtype, NULL);                      \ 
     107        } while (0) 
     108 
     109#endif 
    28110/*  
    29111 * ----   Global mutexes   ---- 
     
    32114SH_MUTEX_EXTERN(mutex_resolv); 
    33115SH_MUTEX_EXTERN(mutex_pwent); 
     116SH_MUTEX_EXTERN(mutex_readdir); 
    34117 
    35118/* 
     
    49132#define SH_MUTEX_UNLOCK_UNSAFE(M)               ((void)0) 
    50133 
     134#define SH_MUTEX_RECURSIVE(M)                   extern void *SH_MUTEX_DUMMY_ ## M 
     135#define SH_MUTEX_RECURSIVE_INIT(M)              ((void)0) 
     136#define SH_MUTEX_RECURSIVE_LOCK(M)              ((void)0) 
     137#define SH_MUTEX_RECURSIVE_UNLOCK(M)            ((void)0) 
     138 
    51139/* #ifdef HAVE_PTHREAD */ 
    52140#endif 
  • trunk/include/sh_tiger.h

    r133 r138  
    99typedef long int TigerType; 
    1010 
    11 #define TIGER_FILE -1; 
    12 #define TIGER_DATA -2; 
     11#define TIGER_FILE -1 
     12#define TIGER_DATA -2 
    1313 
    1414/**************** 
     15typedef long int TigerType; 
    1516typedef enum { 
    1617  TIGER_FILE, 
     
    2425/* the checksum function 
    2526 */ 
    26 /*@owned@*/ char * sh_tiger_hash (const char * filename, TigerType what,  
    27                                   UINT64 Length, char * out, size_t len); 
     27char * sh_tiger_hash (const char * filename, TigerType what,  
     28                      UINT64 Length, char * out, size_t len); 
    2829 
    2930/* NEW Thu Oct 18 19:59:08 CEST 2001 
  • trunk/include/sh_utils.h

    r132 r138  
    5858 *  generator.  
    5959 */ 
    60 UINT32 taus_get            (void *state1, void *state2, void *state3);   
     60UINT32 taus_get            ();   
    6161double taus_get_double     (void *vstate);  /* fast */ 
    6262int    taus_seed           (void); 
     
    8585 */ 
    8686char * sh_util_siggen (char * hexkey,   
    87                        char * text, size_t textlen); 
     87                       char * text, size_t textlen,  
     88                       char * sigbuf, size_t sigbuflen); 
    8889 
    8990/* eval boolean input 
     
    112113int sh_util_obscure_ok (const char * str); 
    113114 
    114 /* output a hexchar[2] 
     115/* output a hexchar[2]; i2h must be char[2] 
    115116 */ 
    116 char * sh_util_charhex( unsigned char c ); 
     117char * sh_util_charhex( unsigned char c, char * i2h ); 
    117118 
    118119/* read a hexchar, return int value (0-15) 
  • trunk/include/slib.h

    r131 r138  
    6060#define SL_FALSE 0 
    6161 
     62#define SH_GRBUF_SIZE  4096 
     63#define SH_PWBUF_SIZE  4096 
    6264 
    6365 
  • trunk/src/sh_entropy.c

    r135 r138  
    333333 
    334334#ifdef NAME_OF_DEV_URANDOM 
    335   m_count = read_mbytes (30, NAME_OF_DEV_RANDOM, nbuf, nbytes); 
     335  m_count = read_mbytes (  1, NAME_OF_DEV_RANDOM, nbuf, nbytes); 
    336336#else 
    337337  m_count = read_mbytes (300, NAME_OF_DEV_RANDOM, nbuf, nbytes); 
  • trunk/src/sh_err_log.c

    r137 r138  
    947947      log_msg.timestamp[0] = '\0'; 
    948948      (void) sl_strlcpy (sigkey_new,  
    949                          sh_tiger_hash (sigkey_old, TIGER_DATA, KEY_LEN, hashbuf, sizeof(hashbuf)), 
     949                         sh_tiger_hash (sigkey_old, TIGER_DATA, KEY_LEN,  
     950                                        hashbuf, sizeof(hashbuf)), 
    950951                         KEY_LEN+1); 
    951952    } 
     
    953954  /* --- Sign the message with the signature key. --- 
    954955   */ 
    955   sh_tiger_hash (log_msg.msg, -1, 10, hashbuf, 10); 
    956956  sh_tiger_hash (log_msg.msg, TIGER_DATA, 
    957                  (unsigned long)(status + KEY_LEN), (char *) hashbuf, (size_t) sizeof(hashbuf)); 
     957                 (unsigned long)(status + KEY_LEN),  
     958                 (char *) hashbuf, (size_t) sizeof(hashbuf)); 
    958959 
    959960  (void) sl_strlcat (log_msg.msg, sigkey_new, (size_t)(status + KEY_LEN + 2)); 
    960961  (void) sl_strlcpy (log_msg.signature, 
    961962                     sh_tiger_hash (log_msg.msg, (TigerType) TIGER_DATA, 
    962                                     (unsigned long)(status + KEY_LEN), hashbuf, sizeof(hashbuf)), 
     963                                    (unsigned long)(status + KEY_LEN),  
     964                                    hashbuf, sizeof(hashbuf)), 
    963965                     KEY_LEN+1); 
    964966  (void) sl_strlcpy (sigkey_old, sigkey_new, KEY_LEN+1);  
  • trunk/src/sh_mem.c

    r137 r138  
    2020#include "config_xor.h" 
    2121 
    22 /* With glibc, _XOPEN_SOURCE 500 is required for  
    23  * pthread_mutexattr_settype/PTHREAD_MUTEX_RECURSIVE 
    24  */ 
    25 #if defined(HAVE_PTHREAD) && defined(MEM_DEBUG) 
    26 #define _XOPEN_SOURCE 500 
    27 #endif 
    28  
    2922#include <stdio.h> 
    3023#include <stdlib.h> 
     
    111104 
    112105#ifdef HAVE_PTHREAD 
    113 static pthread_once_t mem_is_initialized = PTHREAD_ONCE_INIT; 
    114 static pthread_mutex_t mutex_mem; 
    115  
    116 static void initialize_mem(void) 
    117 { 
    118   pthread_mutexattr_t   mta; 
    119   pthread_mutexattr_settype(&mta, PTHREAD_MUTEX_RECURSIVE); 
    120   pthread_mutex_init(&mutex_mem, &mta); 
    121   pthread_mutexattr_destroy(&mta); 
    122   return; 
    123 } 
    124 #define MEM_MUTEX_INIT  (void) pthread_once(&mem_is_initialized, initialize_mem) 
     106 
     107SH_MUTEX_RECURSIVE(mutex_mem); 
     108 
    125109#else 
    126110#define MEM_MUTEX_INIT ((void)0) 
     
    135119  FILE * fd; 
    136120 
    137   MEM_MUTEX_INIT; 
    138   SH_MUTEX_LOCK(mutex_mem); 
     121  SH_MUTEX_RECURSIVE_INIT(mutex_mem); 
     122  SH_MUTEX_RECURSIVE_LOCK(mutex_mem); 
    139123 
    140124  fd = fopen(MEM_LOG, "w"); 
     
    146130    } 
    147131  fclose(fd); 
    148   SH_MUTEX_UNLOCK(mutex_mem); 
     132  SH_MUTEX_RECURSIVE_UNLOCK(mutex_mem); 
    149133  return; 
    150134} 
     
    163147  SL_ENTER(_("sh_mem_stat")); 
    164148 
    165   MEM_MUTEX_INIT; 
    166   SH_MUTEX_LOCK(mutex_mem); 
     149  SH_MUTEX_RECURSIVE_INIT(mutex_mem); 
     150  SH_MUTEX_RECURSIVE_LOCK(mutex_mem); 
    167151 
    168152  if (Alloc_Count == Free_Count)  
     
    201185    } 
    202186 out: 
    203   SH_MUTEX_UNLOCK(mutex_mem); 
     187  SH_MUTEX_RECURSIVE_UNLOCK(mutex_mem); 
    204188  SL_RET0(_("sh_mem_stat")); 
    205189} 
     
    212196  SL_ENTER(_("sh_mem_check")); 
    213197 
    214   MEM_MUTEX_INIT; 
    215   SH_MUTEX_LOCK(mutex_mem); 
     198  SH_MUTEX_RECURSIVE_INIT(mutex_mem); 
     199  SH_MUTEX_RECURSIVE_LOCK(mutex_mem); 
    216200  sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_MSTAMP, 
    217201                   Mem_Max, Mem_Current); 
     
    246230  /* if (nerr > 0) abort(); */ 
    247231 
    248   SH_MUTEX_UNLOCK(mutex_mem); 
     232  SH_MUTEX_RECURSIVE_UNLOCK(mutex_mem); 
    249233  SL_RET0(_("sh_mem_check")); 
    250234} 
     
    258242  SL_ENTER(_("sh_mem_malloc")); 
    259243 
    260   MEM_MUTEX_INIT; 
    261   SH_MUTEX_LOCK(mutex_mem); 
     244  SH_MUTEX_RECURSIVE_INIT(mutex_mem); 
     245  SH_MUTEX_RECURSIVE_LOCK(mutex_mem); 
    262246  the_realAddress = malloc(size + 2 * SH_MEMMULT); 
    263247   
     
    368352      _exit(42); 
    369353    } 
    370  
    371   /* make list entry */ 
    372  
    373   this->real_address = the_realAddress; 
    374   this->address      = theAddress; 
    375   this->size         = size; 
    376   this->line         = line; 
    377   sl_strlcpy(this->file, file, 20); 
    378  
    379   this->next = memlist; 
    380   memlist = this; 
    381  
    382   SH_MUTEX_UNLOCK(mutex_mem); 
     354  else 
     355    { 
     356      /* make list entry */ 
     357 
     358      this->real_address = the_realAddress; 
     359      this->address      = theAddress; 
     360      this->size         = size; 
     361      this->line         = line; 
     362      sl_strlcpy(this->file, file, 20); 
     363 
     364      this->next = memlist; 
     365      memlist = this; 
     366    } 
     367 
     368  SH_MUTEX_RECURSIVE_UNLOCK(mutex_mem); 
    383369  SL_RETURN( theAddress, _("sh_mem_malloc")); 
    384370} 
     
    393379  SL_ENTER(_("sh_mem_free")); 
    394380 
    395   MEM_MUTEX_INIT; 
    396   SH_MUTEX_LOCK(mutex_mem); 
     381  SH_MUTEX_RECURSIVE_INIT(mutex_mem); 
     382  SH_MUTEX_RECURSIVE_LOCK(mutex_mem); 
    397383  if ( a == NULL )  
    398384    { 
     
    466452  Mem_Current -= size; 
    467453 out: 
    468   SH_MUTEX_UNLOCK(mutex_mem); 
     454  SH_MUTEX_RECURSIVE_UNLOCK(mutex_mem); 
    469455  SL_RET0(_("sh_mem_free")); 
    470456} 
  • trunk/src/sh_pthread.c

    r136 r138  
    1414  return; 
    1515} 
     16 
     17 
     18/** 
     19 * libxml2 threads.c: set of generic threading related routines  
     20 * 
     21 * Gary Pennington <Gary.Pennington@uk.sun.com> 
     22 * daniel@veillard.com 
     23 */ 
     24 
     25void sh_InitRMutex(struct sh_RMutex * tok) 
     26{ 
     27  pthread_mutex_init(&tok->lock, NULL); 
     28  tok->held = 0; 
     29  tok->waiters = 0; 
     30  pthread_cond_init(&tok->cv, NULL); 
     31 
     32  return; 
     33} 
     34 
     35void sh_RMutexLock(struct sh_RMutex * tok) 
     36{ 
     37  if (tok == NULL) 
     38    return; 
     39 
     40  pthread_mutex_lock(&tok->lock); 
     41  if (tok->held) { 
     42    if (pthread_equal(tok->tid, pthread_self())) { 
     43      tok->held++; 
     44      pthread_mutex_unlock(&tok->lock); 
     45      return; 
     46    } else { 
     47      tok->waiters++; 
     48      while (tok->held) 
     49        pthread_cond_wait(&tok->cv, &tok->lock); 
     50      tok->waiters--; 
     51    } 
     52  } 
     53  tok->tid = pthread_self(); 
     54  tok->held = 1; 
     55  pthread_mutex_unlock(&tok->lock); 
     56} 
     57 
     58void sh_RMutexUnlock(void * arg) 
     59{ 
     60  struct sh_RMutex * tok = (struct sh_RMutex *) arg; 
     61 
     62  if (tok == NULL) 
     63    return; 
     64     
     65  pthread_mutex_lock(&tok->lock); 
     66  tok->held--; 
     67  if (tok->held == 0) { 
     68    if (tok->waiters) 
     69      pthread_cond_signal(&tok->cv); 
     70    tok->tid = 0; 
     71  } 
     72  pthread_mutex_unlock(&tok->lock); 
     73} 
    1674#endif 
  • trunk/src/sh_srp.c

    r137 r138  
    337337  int    res; 
    338338  char   hash[KEY_LEN+1]; 
     339  char hashbuf[KEYBUF_SIZE]; 
    339340 
    340341  SL_ENTER(_("sh_srp_make_a")); 
     
    345346  (void) sl_strlcpy (hash,  
    346347                     sh_tiger_hash((char *)&randl[0], TIGER_DATA,  
    347                                    (unsigned long) 6*sizeof(UINT32)),  
     348                                   (unsigned long) 6*sizeof(UINT32), 
     349                                   hashbuf, sizeof(hashbuf)),  
    348350                     KEY_LEN+1); 
    349351 
  • trunk/src/sh_suidchk.c

    r137 r138  
    10101010             
    10111011            status = sh_unix_getinfo (ShDFLevel[SH_ERR_T_RO],  
    1012                                       thisEntry->d_name, 
     1012                                      dirlist->sh_d_name, 
    10131013                                      &theFile, fileHash, 0); 
    10141014             
  • trunk/src/sh_unix.c

    r137 r138  
    36113611          SL_RETURN((-1),_("sh_unix_getinfo")); 
    36123612        } 
    3613      
     3613 
    36143614    if (linknamebuf[0] == '/')  
    36153615      { 
  • trunk/test/testcompile.sh

    r96 r138  
    110110        if test x$1 = x0; then 
    111111                [ -z "$verbose" ]     ||  log_msg_ok  "configure...  $TEST"; 
     112                $MAKE clean > /dev/null 2>> test_log 
    112113                $MAKE ${SMATCH} cutest > /dev/null 2>> test_log 
    113114                if test x$? = x0; then 
  • trunk/test/testrun_1.sh

    r122 r138  
    933933run_check () 
    934934{ 
    935      ${VALGRIND} ./samhain -t check -p none -l debug 2>>test_log_valgrind 
     935    ${VALGRIND} ./samhain -t check -p none -l debug 2>>test_log_valgrind 
    936936  
    937937    if test x$? = x0; then 
Note: See TracChangeset for help on using the changeset viewer.