From 20fbfbadcd79feab5077b84cbbed2b5908e685f3 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Fri, 27 May 2011 04:06:23 +0000 Subject: [PATCH] Explicitly close a file in the static serve view. Thanks to Benjamin Peterson for the report. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16282 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/views/static.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django/views/static.py b/django/views/static.py index 72eb1a7f75..387b7da06b 100644 --- a/django/views/static.py +++ b/django/views/static.py @@ -2,6 +2,7 @@ Views and functions for serving static files. These are only to be used during development, and SHOULD NOT be used in a production setting. """ +from __future__ import with_statement import mimetypes import os @@ -57,7 +58,8 @@ def serve(request, path, document_root=None, show_indexes=False): if not was_modified_since(request.META.get('HTTP_IF_MODIFIED_SINCE'), statobj.st_mtime, statobj.st_size): return HttpResponseNotModified(mimetype=mimetype) - response = HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype) + with open(fullpath, 'rb') as f: + response = HttpResponse(f.read(), mimetype=mimetype) response["Last-Modified"] = http_date(statobj.st_mtime) if stat.S_ISREG(statobj.st_mode): response["Content-Length"] = statobj.st_size