Skip to content

Commit d701d98

Browse files
handle other errors in parseMedia
1 parent 60ae0c9 commit d701d98

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

encode/tests/test_util.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,13 @@ def test_goodData(self):
9797

9898
def test_badData(self):
9999
"""
100-
Passing corrupt data to `parseMedia` raises a
100+
Passing corrupt or unsupported data to `parseMedia` raises a
101101
:py:class:`~encode.DecodeError`.
102102
"""
103103
self.assertRaises(DecodeError, util.parseMedia, 'foo')
104+
self.assertRaises(DecodeError, util.parseMedia, {})
105+
self.assertRaises(DecodeError, util.parseMedia, [])
106+
self.assertRaises(DecodeError, util.parseMedia, ())
104107

105108

106109
class VersionTestCase(WebTest):

encode/util.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,16 @@ def parseMedia(data):
100100
"""
101101
#logger.debug("Got frame data: %s" % str(len(data)))
102102
#logger.debug("Data URI header: %s" % data[0:40])
103-
header_len = data.find(",")
104-
payload = data[header_len + 1:]
105103

106104
try:
105+
header_len = data.find(",")
106+
payload = data[header_len + 1:]
107107
binary = b64decode(payload)
108108
#logger.debug("Binary id: %s" % binary[0:4])
109+
109110
return binary
110111

111-
except (TypeError, binascii.Error):
112+
except (AttributeError, TypeError, binascii.Error):
112113
# corrupt media
113114
raise DecodeError("Corrupt media")
114115

0 commit comments

Comments
 (0)