diff --git a/ietf/meeting/urls.py b/ietf/meeting/urls.py index a051bd953..f4bf41ec5 100644 --- a/ietf/meeting/urls.py +++ b/ietf/meeting/urls.py @@ -64,9 +64,9 @@ type_interim_patterns = [ ] type_ietf_only_patterns_id_optional = [ - url(r'^agenda(?P-utc)?(?P.html)?/?$', views.agenda), - url(r'^agenda(?P.txt)$', views.agenda), - url(r'^agenda(?P.csv)$', views.agenda), + url(r'^agenda(?P-utc)?(?P\.html)?/?$', views.agenda), + url(r'^agenda(?P\.txt)$', views.agenda), + url(r'^agenda(?P\.csv)$', views.agenda), url(r'^agenda/edit$', RedirectView.as_view(pattern_name='ietf.meeting.views.edit_meeting_schedule', permanent=True), name='ietf.meeting.views.edit_meeting_schedule'), diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 72161a16b..35a09be2d 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -1488,6 +1488,8 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc="" ".txt": "text/plain; charset=%s"%settings.DEFAULT_CHARSET, ".csv": "text/csv; charset=%s"%settings.DEFAULT_CHARSET, } + if ext not in mimetype: + raise Http404('Extension not allowed') # We do not have the appropriate data in the datatracker for IETF 64 and earlier. # So that we're not producing misleading pages...