diff options
Diffstat (limited to 'pandora/transport.py')
-rw-r--r-- | pandora/transport.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pandora/transport.py b/pandora/transport.py index 42aba2a..0174eac 100644 --- a/pandora/transport.py +++ b/pandora/transport.py | |||
@@ -260,9 +260,15 @@ class BlowfishCryptor(object): | |||
260 | 260 | ||
261 | @staticmethod | 261 | @staticmethod |
262 | def _strip_padding(data): | 262 | def _strip_padding(data): |
263 | pad_size = int(data[-1]) | 263 | try: |
264 | if not data[-pad_size:] == bytes((pad_size,)) * pad_size: | 264 | pad_size = int(data[-1]) # python3 |
265 | except ValueError: # pragma: no cover | ||
266 | pad_size = ord(data[-1]) # python2 | ||
267 | |||
268 | computed = b"".join([chr(pad_size).encode("ascii")] * pad_size) | ||
269 | if not data[-pad_size:] == computed: | ||
265 | raise ValueError('Invalid padding') | 270 | raise ValueError('Invalid padding') |
271 | |||
266 | return data[:-pad_size] | 272 | return data[:-pad_size] |
267 | 273 | ||
268 | 274 | ||