Show More
@@ -118,6 +118,14 class _httprequesthandler(httpservermod. | |||
|
118 | 118 | self.sent_headers = False |
|
119 | 119 | path, query = _splitURI(self.path) |
|
120 | 120 | |
|
121 | # Ensure the slicing of path below is valid | |
|
122 | if (path != self.server.prefix | |
|
123 | and not path.startswith(self.server.prefix + b'/')): | |
|
124 | self._start_response(common.statusmessage(404), []) | |
|
125 | self._write("Not Found") | |
|
126 | self._done() | |
|
127 | return | |
|
128 | ||
|
121 | 129 | env = {} |
|
122 | 130 | env[r'GATEWAY_INTERFACE'] = r'CGI/1.1' |
|
123 | 131 | env[r'REQUEST_METHOD'] = self.command |
@@ -78,4 +78,24 With --prefix /foo/ | |||
|
78 | 78 | listening at http://localhost/foo/ (bound to *$LOCALIP*:HGPORT1) (glob) (?) |
|
79 | 79 | % errors |
|
80 | 80 | |
|
81 | $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS | |
|
82 | ||
|
83 | With out of bounds accesses | |
|
84 | ||
|
85 | $ rm access.log | |
|
86 | $ hg serve -a localhost -p $HGPORT -d --prefix some/dir \ | |
|
87 | > --pid-file=hg.pid -E errors.log | |
|
88 | $ cat hg.pid >> "$DAEMON_PIDS" | |
|
89 | ||
|
90 | $ hg id http://localhost:$HGPORT/some/dir7 | |
|
91 | abort: HTTP Error 404: Not Found | |
|
92 | [255] | |
|
93 | $ hg id http://localhost:$HGPORT/some | |
|
94 | abort: HTTP Error 404: Not Found | |
|
95 | [255] | |
|
96 | ||
|
97 | $ cat access.log errors.log | |
|
98 | $LOCALIP - - [$LOGDATE$] "GET /some/dir7?cmd=capabilities HTTP/1.1" 404 - (glob) | |
|
99 | $LOCALIP - - [$LOGDATE$] "GET /some?cmd=capabilities HTTP/1.1" 404 - (glob) | |
|
100 | ||
|
81 | 101 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now