img2dec: always close AVIOContexts
Zero sized files would cause the contexts to leak away. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
		
							parent
							
								
									c3bcd22ed3
								
							
						
					
					
						commit
						5e3572893d
					
				@ -216,7 +216,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
 | 
			
		||||
    char filename[1024];
 | 
			
		||||
    int i;
 | 
			
		||||
    int size[3]={0}, ret[3]={0};
 | 
			
		||||
    AVIOContext *f[3];
 | 
			
		||||
    AVIOContext *f[3] = {NULL};
 | 
			
		||||
    AVCodecContext *codec= s1->streams[0]->codec;
 | 
			
		||||
 | 
			
		||||
    if (!s->is_pipe) {
 | 
			
		||||
@ -232,7 +232,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
 | 
			
		||||
        for(i=0; i<3; i++){
 | 
			
		||||
            if (avio_open2(&f[i], filename, AVIO_FLAG_READ,
 | 
			
		||||
                           &s1->interrupt_callback, NULL) < 0) {
 | 
			
		||||
                if(i==1)
 | 
			
		||||
                if(i>=1)
 | 
			
		||||
                    break;
 | 
			
		||||
                av_log(s1, AV_LOG_ERROR, "Could not open file : %s\n",filename);
 | 
			
		||||
                return AVERROR(EIO);
 | 
			
		||||
@ -259,7 +259,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
 | 
			
		||||
 | 
			
		||||
    pkt->size= 0;
 | 
			
		||||
    for(i=0; i<3; i++){
 | 
			
		||||
        if(size[i]){
 | 
			
		||||
        if(f[i]){
 | 
			
		||||
            ret[i]= avio_read(f[i], pkt->data + pkt->size, size[i]);
 | 
			
		||||
            if (!s->is_pipe)
 | 
			
		||||
                avio_close(f[i]);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user