diff options
author | June McEnroe <june@causal.agency> | 2020-12-27 18:45:04 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-12-27 18:45:04 -0500 |
commit | 6169012d588458b9dbbbea56528d5e3669596c80 (patch) | |
tree | fc28a97fede3b74ae2cb2e778ffd4c0ae59c637b /tests/t0109-gitconfig.sh | |
download | src-6169012d588458b9dbbbea56528d5e3669596c80.tar.gz src-6169012d588458b9dbbbea56528d5e3669596c80.zip |
Squashed 'www/git.causal.agency/cgit/' content from commit 02221fd3
git-subtree-dir: www/git.causal.agency/cgit git-subtree-split: 02221fd3fe523a3293d64e3359036e3a71d6fd7e
Diffstat (limited to '')
-rwxr-xr-x | tests/t0109-gitconfig.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/t0109-gitconfig.sh b/tests/t0109-gitconfig.sh new file mode 100755 index 00000000..8cee75cd --- /dev/null +++ b/tests/t0109-gitconfig.sh @@ -0,0 +1,48 @@ +#!/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 +} + +strace true 2>/dev/null || { + skip_all='Skipping access validation tests: strace not functional' + 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 |