| 
																	
																	
																		
																	
																	
																 | 
																@@ -1141,7 +1141,7 @@ static int asf_read_replicated_data(AVFormatContext *s, ASFPacket *asf_pkt) | 
															
														
														
													
														
															
																 | 
																 | 
																    if (!asf_pkt->data_size) { | 
																 | 
																 | 
																    if (!asf_pkt->data_size) { | 
															
														
														
													
														
															
																 | 
																 | 
																        asf_pkt->data_size = asf_pkt->size_left = avio_rl32(pb); // read media object size | 
																 | 
																 | 
																        asf_pkt->data_size = asf_pkt->size_left = avio_rl32(pb); // read media object size | 
															
														
														
													
														
															
																 | 
																 | 
																        if (asf_pkt->data_size <= 0) | 
																 | 
																 | 
																        if (asf_pkt->data_size <= 0) | 
															
														
														
													
														
															
																 | 
																 | 
																            return AVERROR_EOF; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            return AVERROR_INVALIDDATA; | 
															
														
														
													
														
															
																 | 
																 | 
																        if ((ret = av_new_packet(&asf_pkt->avpkt, asf_pkt->data_size)) < 0) | 
																 | 
																 | 
																        if ((ret = av_new_packet(&asf_pkt->avpkt, asf_pkt->data_size)) < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																            return ret; | 
																 | 
																 | 
																            return ret; | 
															
														
														
													
														
															
																 | 
																 | 
																    } else | 
																 | 
																 | 
																    } else | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1190,6 +1190,8 @@ static int asf_read_multiple_payload(AVFormatContext *s, AVPacket *pkt, | 
															
														
														
													
														
															
																 | 
																 | 
																            skip = pay_len - asf_pkt->size_left; | 
																 | 
																 | 
																            skip = pay_len - asf_pkt->size_left; | 
															
														
														
													
														
															
																 | 
																 | 
																            pay_len = asf_pkt->size_left; | 
																 | 
																 | 
																            pay_len = asf_pkt->size_left; | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (asf_pkt->size_left <= 0) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            return AVERROR_INVALIDDATA; | 
															
														
														
													
														
															
																 | 
																 | 
																        if ((ret = avio_read(pb, p, pay_len)) < 0) | 
																 | 
																 | 
																        if ((ret = avio_read(pb, p, pay_len)) < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																            return ret; | 
																 | 
																 | 
																            return ret; | 
															
														
														
													
														
															
																 | 
																 | 
																        if (s->key && s->keylen == 20) | 
																 | 
																 | 
																        if (s->key && s->keylen == 20) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1237,7 +1239,7 @@ static int asf_read_single_payload(AVFormatContext *s, AVPacket *pkt, | 
															
														
														
													
														
															
																 | 
																 | 
																        return AVERROR_INVALIDDATA; | 
																 | 
																 | 
																        return AVERROR_INVALIDDATA; | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																    p = asf_pkt->avpkt.data + asf_pkt->data_size - asf_pkt->size_left; | 
																 | 
																 | 
																    p = asf_pkt->avpkt.data + asf_pkt->data_size - asf_pkt->size_left; | 
															
														
														
													
														
															
																 | 
																 | 
																    if (size > asf_pkt->size_left) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (size > asf_pkt->size_left || asf_pkt->size_left <= 0) | 
															
														
														
													
														
															
																 | 
																 | 
																        return AVERROR_INVALIDDATA; | 
																 | 
																 | 
																        return AVERROR_INVALIDDATA; | 
															
														
														
													
														
															
																 | 
																 | 
																    if (asf_pkt->size_left > size) | 
																 | 
																 | 
																    if (asf_pkt->size_left > size) | 
															
														
														
													
														
															
																 | 
																 | 
																        asf_pkt->size_left -= size; | 
																 | 
																 | 
																        asf_pkt->size_left -= size; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |