# HG changeset patch # User ib # Date 1325623656 0 # Node ID 614c99d4cbbf2a625d7aa234e879889f07d5289d # Parent 2364585f3f1e4a4ae592aa7369d39f414a5c0d8d Add checks for errors in stream_cdda's get_track_by_sector(). diff -r 2364585f3f1e -r 614c99d4cbbf stream/stream_cdda.c --- a/stream/stream_cdda.c Tue Jan 03 16:17:21 2012 +0000 +++ b/stream/stream_cdda.c Tue Jan 03 20:47:36 2012 +0000 @@ -252,6 +252,7 @@ { int start_track = get_track_by_sector(p, p->start_sector); int end_track = get_track_by_sector(p, p->end_sector); + if (start_track == -1 || end_track == -1) return STREAM_ERROR; *(unsigned int *)arg = end_track + 1 - start_track; return STREAM_OK; } @@ -262,6 +263,7 @@ int start_track = get_track_by_sector(p, p->start_sector); int end_track = get_track_by_sector(p, p->end_sector); int seek_sector; + if (start_track == -1 || end_track == -1) return STREAM_ERROR; track += start_track; if (track > end_track) { seek(stream, (p->end_sector + 1) * CD_FRAMESIZE_RAW); @@ -278,6 +280,7 @@ { int start_track = get_track_by_sector(p, p->start_sector); int cur_track = get_track_by_sector(p, p->sector); + if (start_track == -1 || cur_track == -1) return STREAM_ERROR; *(unsigned int *)arg = cur_track - start_track; return STREAM_OK; }