diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-11-29 15:47:47 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-11-29 15:47:47 +0000 |
| commit | b6002d4af6330fd828db10afb450bfb7d5f8d628 (patch) | |
| tree | b6a05e4e11adac36ae97c665363991b509e2315d | |
| parent | 3c272792d6207147c23d93baa282c0e2e5a4f874 (diff) | |
Fixed #1291 -- Fixed a potential infinite loop for some URL constructions in
the development server. Thanks, Graham Carlyle.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6731 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | AUTHORS | 1 | ||||
| -rw-r--r-- | django/views/static.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/views/tests/static.py | 10 |
3 files changed, 11 insertions, 1 deletions
@@ -71,6 +71,7 @@ answer newbie questions, and generally made Django that much better: Jonathan Buchanan <jonathan.buchanan@gmail.com> Trevor Caira <trevor@caira.com> Ricardo Javier Cárdenes Medina <ricardo.cardenes@gmail.com> + Graham Carlyle <graham.carlyle@maplecroft.net> Antonio Cavedoni <http://cavedoni.com/> C8E cedric@terramater.net diff --git a/django/views/static.py b/django/views/static.py index b556c60ca6..f0e43ffe4e 100644 --- a/django/views/static.py +++ b/django/views/static.py @@ -33,6 +33,7 @@ def serve(request, path, document_root=None, show_indexes=False): # Clean up given path to only allow serving files below document_root. path = posixpath.normpath(urllib.unquote(path)) + path = path.lstrip('/') newpath = '' for part in path.split('/'): if not part: diff --git a/tests/regressiontests/views/tests/static.py b/tests/regressiontests/views/tests/static.py index 0a67cf543e..c731b249e8 100644 --- a/tests/regressiontests/views/tests/static.py +++ b/tests/regressiontests/views/tests/static.py @@ -12,4 +12,12 @@ class StaticTests(TestCase): for filename in media_files: response = self.client.get('/views/site_media/%s' % filename) file = open(path.join(media_dir, filename)) - self.assertEquals(file.read(), response.content)
\ No newline at end of file + self.assertEquals(file.read(), response.content) + + def test_copes_with_empty_path_component(self): + file_name = 'file.txt' + response = self.client.get('/views/site_media//%s' % file_name) + file = open(path.join(media_dir, file_name)) + self.assertEquals(file.read(), response.content) + + |
