summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xtests/t0107-snapshot.sh20
-rw-r--r--ui-snapshot.c8
2 files changed, 15 insertions, 13 deletions
diff --git a/tests/t0107-snapshot.sh b/tests/t0107-snapshot.sh
index c42091a..8ab4912 100755
--- a/tests/t0107-snapshot.sh
+++ b/tests/t0107-snapshot.sh
@@ -6,4 +6,4 @@ prepare_tests "Verify snapshot"
6 6
7run_test 'get foo/snapshot/test.tar.gz' ' 7run_test 'get foo/snapshot/master.tar.gz' '
8 cgit_url "foo/snapshot/test.tar.gz" >trash/tmp 8 cgit_url "foo/snapshot/master.tar.gz" >trash/tmp
9' 9'
@@ -15,3 +15,3 @@ run_test 'check html headers' '
15 head -n 2 trash/tmp | 15 head -n 2 trash/tmp |
16 grep -e "Content-Disposition: inline; filename=.test.tar.gz." 16 grep -e "Content-Disposition: inline; filename=.master.tar.gz."
17' 17'
@@ -19,9 +19,9 @@ run_test 'check html headers' '
19run_test 'strip off the header lines' ' 19run_test 'strip off the header lines' '
20 tail -n +6 trash/tmp > trash/test.tar.gz 20 tail -n +6 trash/tmp > trash/master.tar.gz
21' 21'
22 22
23run_test 'verify gzip format' 'gunzip --test trash/test.tar.gz' 23run_test 'verify gzip format' 'gunzip --test trash/master.tar.gz'
24run_test 'untar' ' 24run_test 'untar' '
25 rm -rf trash/foo && 25 rm -rf trash/master &&
26 tar -xf trash/test.tar.gz -C trash 26 tar -xf trash/master.tar.gz -C trash
27' 27'
@@ -29,3 +29,3 @@ run_test 'untar' '
29run_test 'count files' ' 29run_test 'count files' '
30 c=$(ls -1 trash/foo/ | wc -l) && 30 c=$(ls -1 trash/master/ | wc -l) &&
31 test $c = 5 31 test $c = 5
@@ -34,4 +34,4 @@ run_test 'count files' '
34run_test 'verify untarred file-5' ' 34run_test 'verify untarred file-5' '
35 grep -e "^5$" trash/foo/file-5 && 35 grep -e "^5$" trash/master/file-5 &&
36 test $(cat trash/foo/file-5 | wc -l) = 1 36 test $(cat trash/master/file-5 | wc -l) = 1
37' 37'
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 5f813fc..f25613e 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -177,6 +177,8 @@ void cgit_print_snapshot(const char *head, const char *hex,
177 hex = get_ref_from_filename(ctx.repo->url, filename, f); 177 hex = get_ref_from_filename(ctx.repo->url, filename, f);
178 if (hex != NULL) { 178 if (hex == NULL) {
179 prefix = xstrdup(filename); 179 html_status(404, "Not found", 0);
180 prefix[strlen(filename) - strlen(f->suffix)] = '\0'; 180 return;
181 } 181 }
182 prefix = xstrdup(filename);
183 prefix[strlen(filename) - strlen(f->suffix)] = '\0';
182 } 184 }