Don't allow multiwrites against a block device without underlying medium
If the block device has been closed, we no longer have a medium to submit IO against, check for this before submitting io. This prevents a segfault further in the code where we dereference elements of the block driver. Signed-off-by: Ryan Harper <ryanh@us.ibm.com> Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									4e59b54586
								
							
						
					
					
						commit
						301db7c2dd
					
				
							
								
								
									
										8
									
								
								block.c
								
								
								
								
							
							
						
						
									
										8
									
								
								block.c
								
								
								
								
							| 
						 | 
				
			
			@ -2398,6 +2398,14 @@ int bdrv_aio_multiwrite(BlockDriverState *bs, BlockRequest *reqs, int num_reqs)
 | 
			
		|||
    MultiwriteCB *mcb;
 | 
			
		||||
    int i;
 | 
			
		||||
 | 
			
		||||
    /* don't submit writes if we don't have a medium */
 | 
			
		||||
    if (bs->drv == NULL) {
 | 
			
		||||
        for (i = 0; i < num_reqs; i++) {
 | 
			
		||||
            reqs[i].error = -ENOMEDIUM;
 | 
			
		||||
        }
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (num_reqs == 0) {
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue