Changeset 145


Ignore:
Timestamp:
Nov 8, 2007, 10:35:23 PM (17 years ago)
Author:
rainer
Message:

Fix for ticket #81 (compile failure with --enable-static).

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r143 r145  
    1313dnl start
    1414dnl
    15 AM_INIT_AUTOMAKE(samhain, 2.4.0)
     15AM_INIT_AUTOMAKE(samhain, 2.4.0a)
    1616AC_CANONICAL_HOST
    1717
  • trunk/docs/Changelog

    r144 r145  
     12.4.0a:
     2        * fix compile failure with --enable-static (reported by S. Clormann)
     3        * fix potential deadlock if SIGHUP is received while suspended
     4
    152.4.0:
    26        * eliminate alarm() for I/O timeout (replaced by select)
  • trunk/include/sh_static.h

    r131 r145  
    1717
    1818struct passwd * sh_getpwnam(const char *name);
    19 int getpwnam_r(const char *name, struct passwd *pwbuf,
     19int sh_getpwnam_r(const char *name, struct passwd *pwbuf,
    2020               char *buf, size_t buflen, struct passwd **pwbufp);
    2121
    2222struct group * sh_getgrgid(gid_t gid);
    23 int getgrgid_r(gid_t gid, struct group *gbuf,
     23int sh_getgrgid_r(gid_t gid, struct group *gbuf,
    2424               char *buf, size_t buflen, struct group **gbufp);
    2525
    2626struct passwd * sh_getpwuid(uid_t uid);
    27 int getpwuid_r(uid_t uid, struct passwd *pwbuf,
     27int sh_getpwuid_r(uid_t uid, struct passwd *pwbuf,
    2828               char *buf, size_t buflen, struct passwd **pwbufp);
    2929
  • trunk/src/samhain.c

    r144 r145  
    17231723            }
    17241724         
    1725           if (sig_config_read_again == 1) /* SIGHUP */
     1725          if (sig_config_read_again == 1 && /* SIGHUP */
     1726              sh_global_suspend_flag == 0)
    17261727            {
    17271728              TPT((0, FIL__, __LINE__, _("msg=<Re-read configuration.>\n")))
  • trunk/src/sh_static.c

    r134 r145  
    9494#define DO_GETXXKEY_R_PATHNAME  _PATH_PASSWD
    9595
    96 static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
    97                            GETXXKEY_R_ENTTYPE *__restrict resultbuf,
    98                            char *__restrict buffer, size_t buflen,
    99                            GETXXKEY_R_ENTTYPE **__restrict result)
     96int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
     97                    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
     98                    char *__restrict buffer, size_t buflen,
     99                    GETXXKEY_R_ENTTYPE **__restrict result)
    100100{
    101101  FILE *stream;
     
    142142#define DO_GETXXKEY_R_PATHNAME  _PATH_GROUP
    143143
    144 static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
    145                            GETXXKEY_R_ENTTYPE *__restrict resultbuf,
    146                            char *__restrict buffer, size_t buflen,
    147                            GETXXKEY_R_ENTTYPE **__restrict result)
     144int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
     145                    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
     146                    char *__restrict buffer, size_t buflen,
     147                    GETXXKEY_R_ENTTYPE **__restrict result)
    148148{
    149149  FILE *stream;
     
    190190#define DO_GETXXKEY_R_PATHNAME  _PATH_PASSWD
    191191
    192 static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
    193                            GETXXKEY_R_ENTTYPE *__restrict resultbuf,
    194                            char *__restrict buffer, size_t buflen,
    195                            GETXXKEY_R_ENTTYPE **__restrict result)
     192int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
     193                    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
     194                    char *__restrict buffer, size_t buflen,
     195                    GETXXKEY_R_ENTTYPE **__restrict result)
    196196{
    197197  FILE *stream;
     
    238238#define DO_GETXXKEY_R_PATHNAME  _PATH_GROUP
    239239
    240 static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
    241                            GETXXKEY_R_ENTTYPE *__restrict resultbuf,
    242                            char *__restrict buffer, size_t buflen,
    243                            GETXXKEY_R_ENTTYPE **__restrict result)
     240int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
     241                    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
     242                    char *__restrict buffer, size_t buflen,
     243                    GETXXKEY_R_ENTTYPE **__restrict result)
    244244{
    245245  FILE *stream;
     
    11681168        DPRINTF("Looking up type %d answer for '%s'\n", type, name);
    11691169
    1170         LOCK;
     1170        SH_MUTEX_LOCK_UNSAFE(resolv_lock);
    11711171        ns %= nscount;
    1172         UNLOCK;
     1172        SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
    11731173
    11741174        while (retries++ < MAX_RETRIES) {
     
    11811181
    11821182                /* Mess with globals while under lock */
    1183                 LOCK;
     1183                SH_MUTEX_LOCK_UNSAFE(resolv_lock);
    11841184                ++id;
    11851185                id &= 0xffff;
    11861186                h.id = id;
    11871187                dns = nsip[ns];
    1188                 UNLOCK;
     1188                SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
    11891189
    11901190                h.qdcount = 1;
     
    12811281                DPRINTF("id = %d, qr = %d\n", h.id, h.qr);
    12821282
    1283                 LOCK;
     1283                SH_MUTEX_LOCK_UNSAFE(resolv_lock);
    12841284                if ((h.id != id) || (!h.qr)) {
    1285                         UNLOCK;
     1285                        SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
    12861286                        /* unsolicited */
    12871287                        goto again;
    12881288                }
    1289                 UNLOCK;
     1289                SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
    12901290
    12911291
     
    13691369                    } else {
    13701370                        /* next server, first search */
    1371                         LOCK;
     1371                        SH_MUTEX_LOCK_UNSAFE(resolv_lock);
    13721372                        ns = (ns + 1) % nscount;
    1373                         UNLOCK;
     1373                        SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
    13741374                        variant = 0;
    13751375                    }
  • trunk/test/testcompile.sh

    r140 r145  
    2020#
    2121
    22 MAXTEST=65; export MAXTEST
     22MAXTEST=71; export MAXTEST
    2323
    2424run_flawfinder ()
     
    181181        # test standalone compilation
    182182        #
     183        TEST="${S}standalone static w/suidcheck w/procchk${E}"
     184        #
     185        if test -r "Makefile"; then
     186                $MAKE distclean
     187        fi
     188        #
     189        ${TOP_SRCDIR}/configure --quiet  --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/samhainrc.test  --enable-static --enable-suidcheck --enable-process-check > /dev/null 2>> test_log
     190        #
     191        let "num = num + 1" >/dev/null
     192        testmake $? $num || let "numfail = numfail + 1"  >/dev/null
     193        let "num = num + 1" >/dev/null
     194        run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
     195
     196        #
     197        # test standalone compilation
     198        #
    183199        TEST="${S}standalone w/procchk w/portchk${E}"
    184200        #
     
    450466        #
    451467        ${TOP_SRCDIR}/configure --quiet --enable-network=server  --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/samhainrc.test   --with-timeserver=127.0.0.1 > /dev/null 2>> test_log   
     468        #
     469        let "num = num + 1" >/dev/null
     470        testmake $? $num || let "numfail = numfail + 1" >/dev/null
     471        let "num = num + 1" >/dev/null
     472        run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
     473
     474        #
     475        # test client/server compilation
     476        #
     477        TEST="${S}client/server application static w/timeserver${E}"
     478        #
     479        if test -r "Makefile"; then
     480                $MAKE clean
     481        fi
     482        #
     483        ${TOP_SRCDIR}/configure --quiet --enable-network=client  --enable-static --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/samhainrc.test   --with-timeserver=127.0.0.1 > /dev/null 2>> test_log   
     484        #
     485        let "num = num + 1" >/dev/null
     486        testmake $? $num || let "numfail = numfail + 1" >/dev/null
     487        let "num = num + 1" >/dev/null
     488        run_smatch $? $num || let "numfail = numfail + 1"  >/dev/null
     489       
     490        if test -r "Makefile"; then
     491                $MAKE clean
     492        fi
     493        #
     494        ${TOP_SRCDIR}/configure --quiet --enable-network=server  --enable-static --enable-srp --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$PW_DIR/samhainrc.test   --with-timeserver=127.0.0.1 > /dev/null 2>> test_log   
    452495        #
    453496        let "num = num + 1" >/dev/null
  • trunk/test/testrun_1a.sh

    r100 r145  
    2020#
    2121
    22 PREBUILDOPTS="--quiet $TRUST --enable-debug --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$RCFILE --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file"
     22PREBUILDOPTS="--quiet $TRUST --enable-debug --enable-static --enable-xml-log --enable-login-watch --prefix=$PW_DIR --localstatedir=$PW_DIR --with-config-file=$RCFILE --with-log-file=$LOGFILE --with-pid-file=$PW_DIR/.samhain_lock --with-data-file=$PW_DIR/.samhain_file"
    2323export PREBUILDOPTS
    2424
Note: See TracChangeset for help on using the changeset viewer.