 4b7975e75d
			
		
	
	
		4b7975e75d
		
	
	
	
	
		
			
			Most notable fixes from a Proxmox VE perspective are: * "virtio-net: correctly copy vnet header when flushing TX" To prevent a stack overflow that could lead to leaking parts of the QEMU process's memory. * "hw/pflash: implement update buffer for block writes" To prevent an edge case for half-completed writes. This potentially affected EFI disks. * Fixes to i386 emulation and ARM emulation. No changes for patches were necessary (all are just automatic context changes). Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | |
| From: Stefan Reiter <s.reiter@proxmox.com>
 | |
| Date: Tue, 2 Mar 2021 16:11:54 +0100
 | |
| Subject: [PATCH] block/io: accept NULL qiov in bdrv_pad_request
 | |
| 
 | |
| Some operations, e.g. block-stream, perform reads while discarding the
 | |
| results (only copy-on-read matters). In this case they will pass NULL as
 | |
| the target QEMUIOVector, which will however trip bdrv_pad_request, since
 | |
| it wants to extend its passed vector.
 | |
| 
 | |
| Simply check for NULL and do nothing, there's no reason to pad the
 | |
| target if it will be discarded anyway.
 | |
| 
 | |
| Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
 | |
| ---
 | |
|  block/io.c | 4 ++++
 | |
|  1 file changed, 4 insertions(+)
 | |
| 
 | |
| diff --git a/block/io.c b/block/io.c
 | |
| index 83d1b1dfdc..24a3c84c93 100644
 | |
| --- a/block/io.c
 | |
| +++ b/block/io.c
 | |
| @@ -1710,6 +1710,10 @@ static int bdrv_pad_request(BlockDriverState *bs,
 | |
|      int sliced_niov;
 | |
|      size_t sliced_head, sliced_tail;
 | |
|  
 | |
| +    if (!qiov) {
 | |
| +        return 0;
 | |
| +    }
 | |
| +
 | |
|      /* Should have been checked by the caller already */
 | |
|      ret = bdrv_check_request32(*offset, *bytes, *qiov, *qiov_offset);
 | |
|      if (ret < 0) {
 |