Thanks to visit codestin.com
Credit goes to github.com

Skip to content

common.decode_params_utf8() fails on broken unicode data #414

@dangusev

Description

@dangusev

I use django-oauth2-provider library for authentication via oauth2 which involves oauthlib code. When I pass wrong unicode data in GET parameters (e.g. u'\xe4'), I get an error:

Traceback (most recent call last):
  File "/home/dan/venvs/openspb/local/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/endpoints/base.py", line 64, in wrapper
    return f(endpoint, uri, *args, **kwargs)
  File "/home/dan/venvs/openspb/local/lib/python2.7/site-packages/oauthlib/oauth2/rfc6749/endpoints/resource.py", line 68, in verify_request
    request = Request(uri, http_method, body, headers)
  File "/home/dan/venvs/openspb/local/lib/python2.7/site-packages/oauthlib/common.py", line 402, in __init__
    self._params.update(dict(urldecode(self.uri_query)))
  File "/home/dan/venvs/openspb/local/lib/python2.7/site-packages/oauthlib/common.py", line 161, in urldecode
    return decode_params_utf8(params)
  File "/home/dan/venvs/openspb/local/lib/python2.7/site-packages/oauthlib/common.py", line 108, in decode_params_utf8
    v.decode('utf-8') if isinstance(v, bytes_type) else v))
  File "/home/dan/venvs/openspb/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe4 in position 2: unexpected end of data

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions