OSDN Git Service

segment: don't access outside seg->frames array
authorMika Raento <mika.raento@elisa.fi>
Mon, 1 Sep 2014 17:10:03 +0000 (20:10 +0300)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 28 Nov 2014 17:44:37 +0000 (18:44 +0100)
Fixes wrong number of segments output and undefined memory access.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 58e0402e02ae5e466c33b9465c1465fdee68d342)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/segment.c

index 05e29d4..dca7822 100644 (file)
@@ -646,7 +646,7 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
         end_pts = seg->segment_count < seg->nb_times ?
             seg->times[seg->segment_count] : INT64_MAX;
     } else if (seg->frames) {
-        start_frame = seg->segment_count <= seg->nb_frames ?
+        start_frame = seg->segment_count < seg->nb_frames ?
             seg->frames[seg->segment_count] : INT_MAX;
     } else {
         end_pts = seg->time * (seg->segment_count+1);