avformat/cache: Use int64_t to avoid int overflow in cache_read
Fixes an issue where an int64_t ffurl_seek return-value was being stored in an int (32-bit) "r" variable, leading to integer overflow when seeking into a large file (>2GB), and ultimately a "Failed to perform internal seek" error mesage. To test, try running `ffprobe 'cache:http://<something>'` on a file that is ~3GB large, whose moov atom is at the end of the file Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
		
							parent
							
								
									6df2c94130
								
							
						
					
					
						commit
						d917f25658
					
				@ -156,7 +156,7 @@ static int cache_read(URLContext *h, unsigned char *buf, int size)
 | 
			
		||||
{
 | 
			
		||||
    Context *c= h->priv_data;
 | 
			
		||||
    CacheEntry *entry, *next[2] = {NULL, NULL};
 | 
			
		||||
    int r;
 | 
			
		||||
    int64_t r;
 | 
			
		||||
 | 
			
		||||
    entry = av_tree_find(c->root, &c->logical_pos, cmp, (void**)next);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user