mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 04:26:37 +08:00 
			
		
		
		
	Fix segfault on UDP reading
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		 Andrey Utkin
					Andrey Utkin
				
			
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			 Michael Niedermayer
						Michael Niedermayer
					
				
			
						parent
						
							4354788a89
						
					
				
				
					commit
					7a032cb97f
				
			| @@ -546,15 +546,19 @@ static int udp_read(URLContext *h, uint8_t *buf, int size) | |||||||
|             avail = av_fifo_size(s->fifo); |             avail = av_fifo_size(s->fifo); | ||||||
|             if (avail) { // >=size) { |             if (avail) { // >=size) { | ||||||
|                 uint8_t tmp[4]; |                 uint8_t tmp[4]; | ||||||
|  |                 int skip = 0; | ||||||
|  |  | ||||||
|                 av_fifo_generic_read(s->fifo, tmp, 4, NULL); |                 av_fifo_generic_read(s->fifo, tmp, 4, NULL); | ||||||
|                 avail= AV_RL32(tmp); |                 avail= AV_RL32(tmp); | ||||||
|                 if(avail > size){ |                 if(avail > size){ | ||||||
|                     av_log(h, AV_LOG_WARNING, "Part of datagram lost due to insufficient buffer size\n"); |                     av_log(h, AV_LOG_WARNING, "Part of datagram lost due to insufficient buffer size\n"); | ||||||
|  |                     skip = avail - size; | ||||||
|                     avail= size; |                     avail= size; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 av_fifo_generic_read(s->fifo, buf, avail, NULL); |                 av_fifo_generic_read(s->fifo, buf, avail, NULL); | ||||||
|  |                 if (skip) | ||||||
|  |                     av_fifo_drain(s->fifo, skip); | ||||||
|                 return avail; |                 return avail; | ||||||
|             } |             } | ||||||
|             else { |             else { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user