Fix possible deference of invalid iterator (if _reel == _reels.end()).
authorCarl Hetherington <cth@carlh.net>
Sat, 28 Oct 2023 20:31:38 +0000 (22:31 +0200)
committerCarl Hetherington <cth@carlh.net>
Sat, 28 Oct 2023 20:31:38 +0000 (22:31 +0200)
src/lib/dcp_decoder.cc

index c1f025d809bf9760b350098ef360495ecd6d50dc..3a187186390dcaa76330494f1e94410d51b87476 100644 (file)
@@ -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 */