Crash if the name of a submitted file has Unicode characters

Issue #57 resolved
Evgeny Kotelnikov created an issue

Unicode strikes back!

Relevant traceback:

Nov 15 10:19:04 xdat09 uwsgi[17698]: Traceback (most recent call last):
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/router.py", line 251, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = self.invoke_subrequest(request, use_tweens=True)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/router.py", line 227, in invoke_subrequest
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = handle_request(request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/fire/security.py", line 96, in tween
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = handler(request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/tweens.py", line 21, in excview_tween
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = handler(request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 92, in tm_tween
Nov 15 10:19:04 xdat09 uwsgi[17698]: reraise(*exc_info)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 73, in tm_tween
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = handler(request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/router.py", line 161, in handle_request
Nov 15 10:19:04 xdat09 uwsgi[17698]: response = view_callable(context, request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/config/views.py", line 237, in _secured_view
Nov 15 10:19:04 xdat09 uwsgi[17698]: return view(context, request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/config/views.py", line 367, in rendered_view
Nov 15 10:19:04 xdat09 uwsgi[17698]: context)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/renderers.py", line 531, in render_view
Nov 15 10:19:04 xdat09 uwsgi[17698]: return self.render_to_response(response, system, request=request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/renderers.py", line 561, in render_to_respon
se
Nov 15 10:19:04 xdat09 uwsgi[17698]: result = self.render(value, system_values, request=request)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid/renderers.py", line 557, in render
Nov 15 10:19:04 xdat09 uwsgi[17698]: result = renderer(value, system_values)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid_genshi/__init__.py", line 174, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: result = self.render(**system)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/pyramid_genshi/__init__.py", line 161, in render
Nov 15 10:19:04 xdat09 uwsgi[17698]: body = stream.render(method=fmt, encoding=encoding, **kwargs)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/core.py", line 184, in render
Nov 15 10:19:04 xdat09 uwsgi[17698]: return encode(generator, method=method, encoding=encoding, out=out)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/output.py", line 57, in encode
Nov 15 10:19:04 xdat09 uwsgi[17698]: return _encode(''.join(list(iterator)))
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/output.py", line 475, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: for kind, data, _ in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/output.py", line 669, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: for kind, data, pos in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/output.py", line 774, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: for kind, data, pos in chain(stream, [(None, None, None)]):
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/output.py", line 594, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: for ev in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/core.py", line 289, in _ensure
Nov 15 10:19:04 xdat09 uwsgi[17698]: for event in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/base.py", line 618, in _include
Nov 15 10:19:04 xdat09 uwsgi[17698]: for event in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/markup.py", line 362, in _match
Nov 15 10:19:04 xdat09 uwsgi[17698]: content = list(content)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/base.py", line 618, in _include
Nov 15 10:19:04 xdat09 uwsgi[17698]: for event in stream:
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/markup.py", line 315, in _strip
Nov 15 10:19:04 xdat09 uwsgi[17698]: event = next()
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/base.py", line 578, in _flatten
Nov 15 10:19:04 xdat09 uwsgi[17698]: result = _eval_expr(data, ctxt, vars)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/base.py", line 289, in _eval_expr
Nov 15 10:19:04 xdat09 uwsgi[17698]: retval = expr.evaluate(ctxt)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/template/eval.py", line 177, in evaluate
Nov 15 10:19:04 xdat09 uwsgi[17698]: return eval(self.code, _globals, {'__data__': data})
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/fire/templates/grader_submissions.html", line 128, in <Expression u'utils.filelisting_row(f, show_delete=False)'>
Nov 15 10:19:04 xdat09 uwsgi[17698]: <tr py:for="f in fs.files"
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/fire/templating.py", line 123, in filelisting_row
Nov 15 10:19:04 xdat09 uwsgi[17698]: tr = t.tr(data_filename=file_info.name)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/builder.py", line 260, in __call__
Nov 15 10:19:04 xdat09 uwsgi[17698]: self.attrib |= _kwargs_to_attrs(kwargs)
Nov 15 10:19:04 xdat09 uwsgi[17698]: File "/home/fire_datastructures/.fire-virtualenv/lib/python2.7/site-packages/genshi/builder.py", line 161, in _kwargs_to_attrs
Nov 15 10:19:04 xdat09 uwsgi[17698]: attrs.append((QName(name), unicode(value)))
Nov 15 10:19:04 xdat09 uwsgi[17698]: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 13: ordinal not in range(128)

Comments (1)

  1. Log in to comment