summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-11-29 15:47:47 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-11-29 15:47:47 +0000
commitb6002d4af6330fd828db10afb450bfb7d5f8d628 (patch)
treeb6a05e4e11adac36ae97c665363991b509e2315d
parent3c272792d6207147c23d93baa282c0e2e5a4f874 (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--AUTHORS1
-rw-r--r--django/views/static.py1
-rw-r--r--tests/regressiontests/views/tests/static.py10
3 files changed, 11 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index 1f8e40edbe..993b905ddd 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -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)
+
+