img_convert(): Only try to free bs[] entries if bs is valid.
This allows for jumping to 'out:' consistently for error exit. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									5bdf61fdd7
								
							
						
					
					
						commit
						31ca34b8cc
					
				
							
								
								
									
										13
									
								
								qemu-img.c
								
								
								
								
							
							
						
						
									
										13
									
								
								qemu-img.c
								
								
								
								
							| 
						 | 
				
			
			@ -696,7 +696,8 @@ static int img_convert(int argc, char **argv)
 | 
			
		|||
 | 
			
		||||
    if (bs_n > 1 && out_baseimg) {
 | 
			
		||||
        error("-B makes no sense when concatenating multiple input images");
 | 
			
		||||
        return 1;
 | 
			
		||||
        ret = -1;
 | 
			
		||||
        goto out;
 | 
			
		||||
    }
 | 
			
		||||
        
 | 
			
		||||
    bs = qemu_mallocz(bs_n * sizeof(BlockDriverState *));
 | 
			
		||||
| 
						 | 
				
			
			@ -974,12 +975,14 @@ out:
 | 
			
		|||
    if (out_bs) {
 | 
			
		||||
        bdrv_delete(out_bs);
 | 
			
		||||
    }
 | 
			
		||||
    for (bs_i = 0; bs_i < bs_n; bs_i++) {
 | 
			
		||||
        if (bs[bs_i]) {
 | 
			
		||||
            bdrv_delete(bs[bs_i]);
 | 
			
		||||
    if (bs) {
 | 
			
		||||
        for (bs_i = 0; bs_i < bs_n; bs_i++) {
 | 
			
		||||
            if (bs[bs_i]) {
 | 
			
		||||
                bdrv_delete(bs[bs_i]);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        qemu_free(bs);
 | 
			
		||||
    }
 | 
			
		||||
    qemu_free(bs);
 | 
			
		||||
    if (ret) {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue