Show More
@@ -439,6 +439,10 b' class hgweb(object):' | |||
|
439 | 439 | res.status = '500 Internal Server Error' |
|
440 | 440 | res.headers['Content-Type'] = ctype |
|
441 | 441 | return rctx.sendtemplate('error', error=pycompat.bytestr(e)) |
|
442 | except error.Abort as e: | |
|
443 | res.status = '403 Forbidden' | |
|
444 | res.headers['Content-Type'] = ctype | |
|
445 | return rctx.sendtemplate('error', error=pycompat.bytestr(e)) | |
|
442 | 446 | except ErrorResponse as e: |
|
443 | 447 | for k, v in e.headers: |
|
444 | 448 | res.headers[k] = v |
@@ -66,6 +66,20 b' create a subdirectory containing reposit' | |||
|
66 | 66 | > EOF |
|
67 | 67 | $ cd .. |
|
68 | 68 | |
|
69 | add file under the directory which could be shadowed by another repository | |
|
70 | ||
|
71 | $ mkdir notrepo/f/f3 | |
|
72 | $ echo f3/file > notrepo/f/f3/file | |
|
73 | $ hg -R notrepo/f ci -Am 'f3/file' | |
|
74 | adding f3/file | |
|
75 | $ hg -R notrepo/f update null | |
|
76 | 0 files updated, 0 files merged, 4 files removed, 0 files unresolved | |
|
77 | $ hg init notrepo/f/f3 | |
|
78 | $ cat <<'EOF' > notrepo/f/f3/.hg/hgrc | |
|
79 | > [web] | |
|
80 | > hidden = true | |
|
81 | > EOF | |
|
82 | ||
|
69 | 83 | create repository without .hg/store |
|
70 | 84 | |
|
71 | 85 | $ hg init nostore |
@@ -1217,6 +1231,38 b' Test subrepositories inside intermediate' | |||
|
1217 | 1231 | |
|
1218 | 1232 | f2 |
|
1219 | 1233 | |
|
1234 | Test accessing file that is shadowed by another repository | |
|
1235 | ||
|
1236 | $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/file/tip/f3/file?style=raw' | |
|
1237 | 403 Forbidden | |
|
1238 | ||
|
1239 | ||
|
1240 | error: path 'f3/file' is inside nested repo 'f3' | |
|
1241 | [1] | |
|
1242 | ||
|
1243 | $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/file/ffffffffffff/f3/file?style=raw' | |
|
1244 | 403 Forbidden | |
|
1245 | ||
|
1246 | ||
|
1247 | error: path 'f3/file' is inside nested repo 'f3' | |
|
1248 | [1] | |
|
1249 | ||
|
1250 | Test accessing invalid paths: | |
|
1251 | ||
|
1252 | $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/file/tip/..?style=raw' | |
|
1253 | 403 Forbidden | |
|
1254 | ||
|
1255 | ||
|
1256 | error: .. not under root '$TESTTMP/dir/webdir/notrepo/f' | |
|
1257 | [1] | |
|
1258 | ||
|
1259 | $ get-with-headers.py localhost:$HGPORT1 'rcoll/notrepo/f/file/tip/.hg/hgrc?style=raw' | |
|
1260 | 403 Forbidden | |
|
1261 | ||
|
1262 | ||
|
1263 | error: path contains illegal component: .hg/hgrc | |
|
1264 | [1] | |
|
1265 | ||
|
1220 | 1266 | Test descend = False |
|
1221 | 1267 | |
|
1222 | 1268 | $ killdaemons.py |
General Comments 0
You need to be logged in to leave comments.
Login now