[linux-minidisc] [PATCH 2/7] Always check group track are in disk boundaries.
- From: Vincent Pelletier <plr.vincent@gmail.com>
- To: linux-minidisc@lists.fu-berlin.de
- Date: Thu, 28 Jan 2010 08:40:42 +0100
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:x-bogosity :mime-version:content-type:content-transfer-encoding; b=KnGtZxHw9BC1fQBG4E0sNsYvFckqd9m5701593v8+PYmGZ2xLs0VC4R0nyg/NOAZzy YGpgeIi1ZX4X0+tJ8RY0NlfeppCYEa0GBw8R3yb4MYxEvzwTBEnynvAEcZaxv9PWOYg5 BvLXxLHaukBeT597lidJPveBcW/TmeQe7mXQI=
- Subject: [linux-minidisc] [PATCH 2/7] Always check group track are in disk boundaries.
---
netmd/libnetmd.py | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/netmd/libnetmd.py b/netmd/libnetmd.py
index def234a..a66a9d9 100644
--- a/netmd/libnetmd.py
+++ b/netmd/libnetmd.py
@@ -674,6 +674,7 @@ class NetMDInterface(object):
raw_title = self._getDiscTitle()
group_list = raw_title.split('//')
track_dict = {}
+ track_count = self.getTrackCount()
result = []
append = result.append
for group_index, group in enumerate(group_list):
@@ -684,12 +685,14 @@ class NetMDInterface(object):
track_range, group_name = group.split(';', 1)
if '-' in track_range:
track_min, track_max = track_range.split('-')
- assert track_min < track_max, '%r, %r' % (track_min,
track_max)
else:
track_min = track_max = track_range
+ track_min, track_max = int(track_min), int(track_max)
+ assert 0 <= track_min <= track_max <= track_count, (
+ track_min, track_max, track_count)
track_list = []
track_append = track_list.append
- for track in xrange(int(track_min) - 1, int(track_max)):
+ for track in xrange(track_min - 1, track_max):
if track in track_dict:
raise ValueError, 'Track %i is in 2 groups: %r[%i] & ' \
'%r[%i]' % (track, track_dict[track][0],
--
1.6.6