[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdemultimedia/kscd
From: Shaheed Haque <srhaque () iee ! org>
Date: 2005-04-03 21:07:59
Message-ID: 20050403210759.D43C75FA () office ! kde ! org
[Download RAW message or body]
CVS commit by shaheed:
Guard against invalid array accesses. Thanks André!
M +6 -3 kcompactdisc.cpp 1.5
--- kdemultimedia/kscd/kcompactdisc.cpp #1.4:1.5
@@ -91,4 +91,7 @@ extern "C"
((frames) * 1000 / 75)
+#define TRACK_VALID(track) \
+((track) && (track <= m_tracks))
+
const QString KCompactDisc::defaultDevice = DEFAULT_CD_DEVICE;
const unsigned KCompactDisc::missingDisc = (unsigned)-1;
@@ -129,5 +132,5 @@ const QString &KCompactDisc::device() co
unsigned KCompactDisc::discLength() const
{
- if (NO_DISC)
+ if (NO_DISC || !m_tracks)
return 0;
return FRAMES_TO_MS(m_trackStartFrames[m_tracks - 1] - m_trackStartFrames[0]);
@@ -225,5 +228,5 @@ void KCompactDisc::pause()
void KCompactDisc::play(unsigned startTrack, unsigned startTrackPosition, unsigned \
endTrack) {
- wm_cd_play((startTrack == 0) ? 1 : startTrack, startTrackPosition / 1000, \
(endTrack == 0) ? WM_ENDTRACK : endTrack); + wm_cd_play(TRACK_VALID(startTrack) ? \
startTrack : 1, startTrackPosition / 1000, TRACK_VALID(endTrack) ? endTrack : \
WM_ENDTRACK ); }
@@ -305,5 +308,5 @@ unsigned KCompactDisc::trackLength() con
unsigned KCompactDisc::trackLength(unsigned track) const
{
- if (NO_DISC)
+ if (NO_DISC || !TRACK_VALID(track))
return 0;
return cd->trk[track - 1].length * 1000;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic