diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-10-28 22:31:38 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-10-28 22:31:38 +0200 |
| commit | 359b3e0b84c9bfbe363fd61ee806860172f24e72 (patch) | |
| tree | 3865e81c8f3f0c011b18f362ae230d9bd4ecc2b3 /src/lib/dcp_decoder.cc | |
| parent | 6ab77878f2bef6ece4da8be4307d4b05922e21d6 (diff) | |
Fix possible deference of invalid iterator (if _reel == _reels.end()).
Diffstat (limited to 'src/lib/dcp_decoder.cc')
| -rw-r--r-- | src/lib/dcp_decoder.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index c1f025d80..3a1871863 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -447,10 +447,12 @@ DCPDecoder::seek (ContentTime t, bool accurate) /* Pass texts in the pre-roll */ - auto const vfr = _dcp_content->active_video_frame_rate (film()); - for (int i = 0; i < pre_roll_seconds * vfr; ++i) { - pass_texts (pre, (*_reel)->main_picture()->asset()->size()); - pre += ContentTime::from_frames (1, vfr); + if (_reel != _reels.end()) { + auto const vfr = _dcp_content->active_video_frame_rate (film()); + for (int i = 0; i < pre_roll_seconds * vfr; ++i) { + pass_texts (pre, (*_reel)->main_picture()->asset()->size()); + pre += ContentTime::from_frames (1, vfr); + } } /* Seek to correct position */ |
