Browse code

Avoid divisions by 0 in the ASF demuxer if packet_size is not valid.

r19330 by reimar


Originally committed as revision 22080 to svn://svn.ffmpeg.org/ffmpeg/branches/0.5

Reinhard Tartler authored on 2010/02/27 00:49:52
Showing 1 changed files
... ...
@@ -555,7 +555,9 @@ int ff_asf_get_packet(AVFormatContext *s, ByteIOContext *pb)
555 555
     int rsize = 8;
556 556
     int c, d, e, off;
557 557
 
558
-    off= (url_ftell(pb) - s->data_offset) % asf->packet_size + 3;
558
+    off= 32768;
559
+    if (s->packet_size > 0)
560
+        off= (url_ftell(pb) - s->data_offset) % asf->packet_size + 3;
559 561
 
560 562
     c=d=e=-1;
561 563
     while(off-- > 0){
... ...
@@ -941,7 +943,8 @@ static int64_t asf_read_pts(AVFormatContext *s, int stream_index, int64_t *ppos,
941 941
         start_pos[i]= pos;
942 942
     }
943 943
 
944
-    pos= (pos+asf->packet_size-1-s->data_offset)/asf->packet_size*asf->packet_size+ s->data_offset;
944
+    if (s->packet_size > 0)
945
+        pos= (pos+asf->packet_size-1-s->data_offset)/asf->packet_size*asf->packet_size+ s->data_offset;
945 946
     *ppos= pos;
946 947
     url_fseek(s->pb, pos, SEEK_SET);
947 948