1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

selftest: Add test for failing chdir call in smbd

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13189

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Christof Schmitt 2017-12-13 12:58:18 -07:00 committed by Jeremy Allison
parent b0e1fc74fd
commit 0d3000be2a
3 changed files with 60 additions and 0 deletions

View File

@ -343,3 +343,4 @@
# Disabling NTLM means you can't use samr to change the password
^samba.tests.ntlmdisabled.python\(ktest\).ntlmdisabled.NtlmDisabledTests.test_samr_change_password\(ktest\)
^samba.tests.ntlmdisabled.python\(ad_dc_no_ntlm\).ntlmdisabled.NtlmDisabledTests.test_ntlm_connection\(ad_dc_no_ntlm\)
^samba3.blackbox.smbd_error.check_panic_2

View File

@ -0,0 +1,56 @@
#!/bin/sh
#
# Test smbd with failing chdir system call.
#
# Verify that smbd does not panic when the chdir system call is
# returning an error. ensure that the output format for ACL entries
#
# Copyright (C) 2017 Christof Schmitt
. $(dirname $0)/../../../testprogs/blackbox/subunit.sh
failed=0
error_inject_conf=$(dirname $SMB_CONF_PATH)/error_inject.conf
panic_count_0=$(grep -c PANIC $SMBD_TEST_LOG)
#
# Verify that a panic in smbd will result in a PANIC message in the log
#
# As a panic is expected here, also overwrite the default "panic
# action" in selftest to not start a debugger
echo 'error_inject:chdir = panic' > $error_inject_conf
echo '[global]' >> $error_inject_conf
echo 'panic action = ""' >> $error_inject_conf
testit_expect_failure "smbclient" $VALGRIND \
$BINDIR/smbclient //$SERVER_IP/error_inject \
-U$USERNAME%$PASSWORD -c dir ||
failed=$(expr $failed + 1)
rm $error_inject_conf
panic_count_1=$(grep -c PANIC $SMBD_TEST_LOG)
testit "check_panic_1" test $(expr $panic_count_0 + 1) -eq $panic_count_1 ||
failed=$(expr $failed + 1)
#
# Verify that a failing chdir vfs call does not result in a smbd panic
#
echo 'error_inject:chdir = ESTALE' > $error_inject_conf
testit_expect_failure "smbclient" $VALGRIND \
$BINDIR/smbclient //$SERVER_IP/error_inject \
-U$USERNAME%$PASSWORD -c dir ||
failed=$(expr $failed + 1)
panic_count_2=$(grep -c PANIC $SMBD_TEST_LOG)
testit "check_panic_2" test $panic_count_1 -eq $panic_count_2 ||
failed=$(expr $failed + 1)
rm $error_inject_conf
testok $0 $failed

View File

@ -585,6 +585,9 @@ plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',
configuration, '$LOCAL_PATH', '$LOCK_DIR' ])
plantestsuite("samba3.blackbox.smbd_error", "simpleserver:local",
[ os.path.join(samba3srcdir, "script/tests/test_smbd_error.sh") ])
plantestsuite("samba3.blackbox.net_cache_samlogon", "ad_member:local",
[ os.path.join(samba3srcdir, "script/tests/test_net_cache_samlogon.sh"),
'$SERVER', 'tmp', '$DC_USERNAME', '$DC_PASSWORD'])