mirror of https://github.com/Cisco-Talos/clamav
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
#!/bin/sh
|
|
# Run under duma
|
|
if test -z "$LIBDUMA"; then
|
|
for i in /usr/lib/libduma.so /usr/local/lib/libduma.so; do
|
|
if test -f "$i"; then
|
|
LIBDUMA="$i"
|
|
break;
|
|
fi
|
|
done
|
|
fi
|
|
test -f "$LIBDUMA" || { echo "*** duma not found, skipping test"; exit 77;}
|
|
DUMA_FILL=90
|
|
DUMA_MALLOC_0_STRATEGY=1
|
|
DUMA_OUTPUT_FILE=duma.log
|
|
DUMA_DISABLE_BANNER=1
|
|
LIBPRELOAD="$LIBDUMA"
|
|
rm -f duma.log
|
|
export DUMA_FILL DUMA_MALLOC_0_STRATEGY DUMA_OUTPUT_FILE DUMA_DISABLE_BANNER LIBPRELOAD
|
|
echo "--- starting clamd under duma to detect overruns"
|
|
CLAMD_WRAPPER=$abs_srcdir/preload_run.sh $abs_srcdir/check_clamd.sh &
|
|
pid1=$!
|
|
|
|
echo "--- starting clamd under duma to detect underruns"
|
|
DUMA_OUTPUT_FILE=duma2.log
|
|
DUMA_PROTECT_BELOW=1
|
|
export DUMA_PROTECT_BELOW
|
|
rm -f duma2.log
|
|
CLAMD_TEST_UNIQ1=3 CLAMD_TEST_UNIQ2=4 CLAMD_WRAPPER=$abs_srcdir/preload_run.sh $abs_srcdir/check_clamd.sh&
|
|
pid2=$!
|
|
|
|
wait $pid1
|
|
exitcode1=$?
|
|
wait $pid2
|
|
exitcode2=$?
|
|
if test $exitcode1 -ne 0; then
|
|
echo "*** DUMA has detected errors"
|
|
cat duma.log
|
|
rm -f duma.log duma2.log
|
|
exit 1
|
|
fi
|
|
if test $exitcode2 -ne 0; then
|
|
echo "*** DUMA has detected errors"
|
|
cat duma2.log
|
|
rm -f duma.log duma2.log
|
|
exit 1
|
|
fi
|
|
exit 0
|
|
|
|
|