diff options
author | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·30+0000 |
---|---|---|
committer | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·30+0000 |
commit | 723dc8fbcb1a4609c264758eae420ee2811a2b55 (patch) | |
tree | 6dea64c58b8973fad49924d6a1f5a5ea0863408c /tests/t0109-gitconfig.sh |
Squashed 'third_party/cgit/' content from commit 8fc0c81
git-subtree-dir: third_party/cgit git-subtree-split: 8fc0c81bbbed21ee30e8a48b2ab1066a029b7b32
Diffstat (limited to 'tests/t0109-gitconfig.sh')
-rwxr-xr-x | tests/t0109-gitconfig.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/t0109-gitconfig.sh b/tests/t0109-gitconfig.sh new file mode 100755 index 000000000000..3ba668490d97 --- /dev/null +++ b/tests/t0109-gitconfig.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +test_description='Ensure that git does not access $HOME' +. ./setup.sh + +test -n "$(which strace 2>/dev/null)" || { + skip_all='Skipping access validation tests: strace not found' + test_done + exit +} + +test_no_home_access () { + non_existent_path="/path/to/some/place/that/does/not/possibly/exist" + while test -d "$non_existent_path"; do + non_existent_path="$non_existent_path/$(date +%N)" + done && + strace \ + -E HOME="$non_existent_path" \ + -E CGIT_CONFIG="$PWD/cgitrc" \ + -E QUERY_STRING="url=$1" \ + -e access -f -o strace.out cgit && + test_must_fail grep "$non_existent_path" strace.out +} + +test_no_home_access_success() { + test_expect_success "do not access \$HOME: $1" " + test_no_home_access '$1' + " +} + +test_no_home_access_success +test_no_home_access_success foo +test_no_home_access_success foo/refs +test_no_home_access_success foo/log +test_no_home_access_success foo/tree +test_no_home_access_success foo/tree/file-1 +test_no_home_access_success foo/commit +test_no_home_access_success foo/diff +test_no_home_access_success foo/patch +test_no_home_access_success foo/snapshot/master.tar.gz + +test_done |