Changeset 207


Ignore:
Timestamp:
Jan 16, 2009, 11:52:26 PM (16 years ago)
Author:
katerina
Message:

Fix for ticket #134 (size may get truncated to INT_MAX)

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r205 r207  
    12291229            if test -z "$PGSQL_DIR"; then
    12301230              for i in $pgsql_directory; do
     1231                if test -r $i/include/postgresql/libpq-fe.h; then
     1232                  PGSQL_INC_DIR=$i/include
     1233                  PGSQL_DIR=$i
     1234                fi
     1235              done
     1236            fi
     1237            if test -z "$PGSQL_DIR"; then
     1238              for i in $pgsql_directory; do
    12311239                if test -r $i/include/libpq-fe.h; then
    12321240                  PGSQL_INC_DIR=$i/include
     
    12391247              tmp=""
    12401248              for i in $pgsql_directory; do
    1241                 tmp="$tmp $i/include $i/include/pgsql"
     1249                tmp="$tmp $i/include $i/include/pgsql $i/include/postgresql"
    12421250              done
    12431251              FAIL_MESSAGE("PostgreSQL header file (libpq-fe.h)", $tmp)
    12441252            fi
    12451253
    1246             for i in lib lib/pgsql; do
     1254            for i in lib lib/pgsql lib/postgresql; do
    12471255                str="$PGSQL_DIR/$i/libpq.*"
    12481256                for j in `echo $str`; do
     
    12561264            if test -z "$PGSQL_LIB_DIR"; then
    12571265              for ff in $pgsql_directory; do
    1258                 for i in lib lib/pgsql; do
     1266                for i in lib lib/pgsql lib/postgresql; do
    12591267                  str="$ff/$i/libpq.*"
    12601268                  for j in `echo $str`; do
     
    12711279               tmp=""
    12721280               for i in $pgsql_directory; do
    1273                    tmp="$i/lib $i/lib/pgsql"
     1281                   tmp="$i/lib $i/lib/pgsql $i/lib/postgresql"
    12741282               done
    12751283               FAIL_MESSAGE("postgresql library libpq", $tmp)
     
    12871295            CPPFLAGS="$CPPFLAGS -I${PGSQL_INC_DIR}"
    12881296            AC_CHECK_HEADERS(pgsql/libpq-fe.h)
     1297            AC_CHECK_HEADERS(postgresql/libpq-fe.h)
    12891298          else
    12901299            pg_lib_dir=`${PGCONF} --libdir`
  • trunk/docs/Changelog

    r206 r207  
    112.5.2:
     2        * samhain.c: report module failure with positive offset
     3        * sh_database.c: parse numerical fields into ulong
     4        * fix regression test script for postgresql
     5        * fix regression test script for SELinux/ACL test
    26        * fix reporting of user for open ports to prelude
    37        * report process pid for open ports
     
    711        * improved help output of samhain_stealth (as suggested
    812          by Michael Athanasiou)
    9         * new option ProcessCheckIsOpenvz ([false]/true)
     13        * new option ProcessCheckIsOpenVZ ([false]/true)
    1014       
    11152.5.1:
  • trunk/include/samhain.h

    r170 r207  
    138138#define SH_MOD_ACTIVE  0
    139139#define SH_MOD_FAILED -1
     140#define SH_MOD_OFFSET 10
    140141
    141142/* Flags for file status
  • trunk/src/samhain.c

    r203 r207  
    16641664                             MSG_MOD_FAIL,
    16651665                             _(modList[modnum].name),
    1666                              status);
     1666                             status+SH_MOD_OFFSET);
    16671667          } else {
    16681668            sh_error_handle ((-1), FIL__, __LINE__, status, MSG_MOD_FAIL,
    16691669                             _(modList[modnum].name),
    1670                              status);
     1670                             status+SH_MOD_OFFSET);
    16711671          }
    16721672          modList[modnum].initval = SH_MOD_FAILED;
     
    18321832                                         status, MSG_MOD_FAIL,
    18331833                                         _(modList[modnum].name),
    1834                                          status);
     1834                                         status+SH_MOD_OFFSET);
    18351835                      } else {
    18361836                        sh_error_handle ((-1), FIL__, __LINE__,
    18371837                                         status, MSG_MOD_FAIL,
    18381838                                         _(modList[modnum].name),
    1839                                          status);
     1839                                         status+SH_MOD_OFFSET);
    18401840                      }
    18411841                      modList[modnum].initval = SH_MOD_FAILED;
     
    20732073            if (0 != (status = modList[modnum].mod_check()))
    20742074              sh_error_handle ((-1), FIL__, __LINE__, status, MSG_MOD_EXEC,
    2075                                _(modList[modnum].name), (long) status);
     2075                               _(modList[modnum].name), (long) (status+SH_MOD_OFFSET));
    20762076        }
    20772077     
  • trunk/src/sh_database.c

    r170 r207  
    112112  char            acl_new[1024];
    113113
    114   long            long_data[20];
     114  unsigned long   ulong_data[20];
    115115
    116116  /*
     
    870870 ******************************************************************/
    871871
    872 #ifdef HAVE_PGSQL_LIBPQ_FE_H
     872#if defined(HAVE_PGSQL_LIBPQ_FE_H)
    873873#include <pgsql/libpq-fe.h>
     874#elif defined(HAVE_POSTGRESQL_LIBPQ_FE_H)
     875#include <postgresql/libpq-fe.h>
    874876#else
     877#if !defined(USE_UNO)
    875878#include <libpq-fe.h>
     879#else
     880#include <postgresql/libpq-fe.h>
     881#endif
    876882#endif
    877883
     
    13951401        {
    13961402          (void)
    1397           sl_snprintf(end, (size_t)(size-1), _(",\'%ld\'"),
    1398                       db_entry->long_data[attr_tab[i].val-START_SEC_LONGS]);
     1403          sl_snprintf(end, (size_t)(size-1), _(",\'%lu\'"),
     1404                      db_entry->ulong_data[attr_tab[i].val-START_SEC_LONGS]);
    13991405          while (*end != '\0') { ++end; --size; }
    14001406          (void) sl_snprintf(c_end, (size_t)(c_size-1),
     
    14061412              (void)
    14071413              md5Update(&crc,
    1408                         (sh_byte *) db_entry->long_data[attr_tab[i].val-START_SEC_LONGS],
     1414                        (sh_byte *) db_entry->ulong_data[attr_tab[i].val-START_SEC_LONGS],
    14091415                        sizeof(long));
    14101416              /*@+type@*/
     
    17181724                else if (res->val >= START_SEC_LONGS)
    17191725                  {
    1720                     db_entry->long_data[res->val-START_SEC_LONGS]
    1721                       = atol(&p[j+2]);
     1726                    db_entry->ulong_data[res->val-START_SEC_LONGS]
     1727                      = strtoul(&p[j+2], (char **) NULL, 10);
     1728                    /* atol(&p[j+2]); */
    17221729                  }
    17231730
  • trunk/test/testrun_1.sh

    r172 r207  
    190190#
    191191TESTPOLICY_11="
     192[Misc]
     193UseAclCheck=yes
     194UseSelinuxCheck=yes
    192195[ReadOnly]
    193196dir=99${BASE}
     
    231234
    232235TESTPOLICY_10="
     236[Misc]
     237UseAclCheck=yes
     238UseSelinuxCheck=yes
    233239[ReadOnly]
    234240dir=99${BASE}
     
    253259    # CDIRS="a b c a/a a/b a/c a/a/a a/a/b a/a/c a/a/a/a a/a/a/b a/a/a/c";
    254260    tmp=`grep CRIT $LOGFILE | wc -l`
    255     if [ $tmp -ne 3 ]; then
     261    if [ $tmp -ne 5 ]; then
    256262        [ -z "$verbose" ] || log_msg_fail "policy count";
    257263        return 1
     
    12411247          let "tcount = tcount + 1" >/dev/null
    12421248          #
    1243           if [ -z "$doall" -a $tcount -eq 10 ]; then
    1244               log_skip 10 $MAXTEST 'ACL/SELinux test (or use --really-all)'
    1245               let "tcount = tcount + 1" >/dev/null
    1246           fi
    1247           #
    1248           if [ -z "$doall" -a $tcount -eq 11 ]; then
    1249               log_skip 11 $MAXTEST 'ACL/SELinux test (or use --really-all)'
    1250               let "tcount = tcount + 1" >/dev/null
     1249          if [ $tcount -eq 10 ]; then
     1250              if [ -z "$doall" ]; then
     1251                  log_skip 10 $MAXTEST 'ACL/SELinux test (or use --really-all)'
     1252                  log_skip 11 $MAXTEST 'ACL/SELinux test (or use --really-all)'
     1253                  let "tcount = tcount + 2" >/dev/null
     1254              else
     1255                  # 'id -u' is posix
     1256                  #
     1257                  if test -f /usr/xpg4/bin/id
     1258                  then
     1259                      my_uid=`/usr/xpg4/bin/id -u`
     1260                  else
     1261                      my_uid=`id -u`
     1262                  fi
     1263                  #
     1264                  if [ ${my_uid} -ne 0 ]; then
     1265                      log_skip 10 $MAXTEST 'ACL/SELinux test (you are not root)'
     1266                      log_skip 11 $MAXTEST 'ACL/SELinux test (you are not root)'
     1267                      let "tcount = tcount + 2" >/dev/null
     1268                  else
     1269
     1270                      SETFATTR=`find_path setfattr`
     1271                      if [ -z "$SETFATTR" ]; then
     1272                          log_skip 10 $MAXTEST 'ACL/SELinux test (setfattr not in path)'
     1273                          log_skip 11 $MAXTEST 'ACL/SELinux test (setfattr not in path)'
     1274                          let "tcount = tcount + 2" >/dev/null
     1275                      fi
     1276                  fi
     1277              fi
    12511278          fi
    12521279          #
  • trunk/test/testrun_2a.sh

    r172 r207  
    221221        cp    ./testrc_2       ./rc.${SH_LOCALHOST}
    222222        mv    ./.samhain_file  ./file.${SH_LOCALHOST}
     223        chmod 644 ./rc.${SH_LOCALHOST}
     224        chmod 644 ./file.${SH_LOCALHOST}
    223225
    224226        ALTHOST=`find_hostname`
    225227        cp    ./testrc_2       "./rc.${ALTHOST}"
    226228        cp    ./file.${SH_LOCALHOST} "./file.${ALTHOST}" 2>/dev/null
     229        chmod 644 ./rc.${ALTHOST}
     230        chmod 644 ./file.${ALTHOST}
    227231}
    228232
  • trunk/test/testrun_2d.sh

    r170 r207  
    3838    # PGPASSWORD=samhain; export PGPASSWORD
    3939    create_pgpass
    40     psql -U samhain -d samhain -c "SELECT * FROM log WHERE entry_status = 'NEW' and log_time > '${DATE}';" >test_log_db
     40    psql -o test_log_db -U samhain -d samhain -c "SELECT * FROM log WHERE entry_status = 'NEW' and log_time > '${DATE}';"
    4141    #
    4242    egrep "START.*Yule" test_log_db >/dev/null 2>&1
    4343    if [ $? -ne 0 ]; then
    44         [ -z "$verbose" ] || log_msg_fail "Server start";
     44        [ -z "$verbose" ] || log_msg_fail "Server start (psql)";
    4545        return 1
    4646    fi
    4747    egrep "NEW CLIENT" test_log_db >/dev/null 2>&1
    4848    if [ $? -ne 0 ]; then
    49         [ -z "$verbose" ] || log_msg_fail "Client connect";
     49        [ -z "$verbose" ] || log_msg_fail "Client connect (psql)";
    5050        return 1
    5151    fi
    5252    egrep "Checking.*/bin" test_log_db >/dev/null 2>&1
    5353    if [ $? -ne 0 ]; then
    54         [ -z "$verbose" ] || log_msg_fail "Client file check";
     54        [ -z "$verbose" ] || log_msg_fail "Client file check (psql)";
    5555        return 1
    5656    fi
    5757    egrep "EXIT.*Samhain" test_log_db >/dev/null 2>&1
    5858    if [ $? -ne 0 ]; then
    59         [ -z "$verbose" ] || log_msg_fail "Client exit";
     59        [ -z "$verbose" ] || log_msg_fail "Client exit (psql)";
    6060        return 1
    6161    fi
    6262    egrep "EXIT.*Yule.*SIGTERM" test_log_db >/dev/null 2>&1
    6363    if [ $? -ne 0 ]; then
    64         [ -z "$verbose" ] || log_msg_fail "Server exit";
     64        [ -z "$verbose" ] || log_msg_fail "Server exit (psql)";
    6565        return 1
    6666    fi
Note: See TracChangeset for help on using the changeset viewer.